<!-- build time:Sun Nov 24 2019 22:25:20 GMT+0800 (China Standard Time) --><!DOCTYPE html><html lang="zh"><head><meta charset="utf-8"><title>Identity API v3 (CURRENT)(一) - Note?Note!</title><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"><meta name="description" content="原文地址认证服务（Identity）生成一套令牌（Token）来授权用户访问OpenStack Restful Api。用户以授权令牌和服务端点（URL Endpoint）作为有效凭证访问其他服务的API。每次访问一个OpenStack的API，都要提供名为X-Auth-Token，值为Token的访问头。"><meta name="keywords" content="Development,OpenStackApi"><meta property="og:type" content="article"><meta property="og:title" content="Identity API v3 (CURRENT)(一)"><meta property="og:url" content="http:&#x2F;&#x2F;www.borgor.cn&#x2F;2017-09-06&#x2F;240d4391.html"><meta property="og:site_name" content="Note?Note!"><meta property="og:description" content="原文地址认证服务（Identity）生成一套令牌（Token）来授权用户访问OpenStack Restful Api。用户以授权令牌和服务端点（URL Endpoint）作为有效凭证访问其他服务的API。每次访问一个OpenStack的API，都要提供名为X-Auth-Token，值为Token的访问头。"><meta property="og:locale" content="zh-CN"><meta property="og:image" content="http:&#x2F;&#x2F;www.borgor.cn&#x2F;images&#x2F;og_image.png"><meta property="og:updated_time" content="2019-10-08T06:16:25.000Z"><meta name="twitter:card" content="summary"><meta name="twitter:image" content="http:&#x2F;&#x2F;www.borgor.cn&#x2F;images&#x2F;og_image.png"><link rel="icon" href="/favicon.ico"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.css"><link rel="stylesheet" href="https://cdnjs.loli.net/ajax/libs/font-awesome/5.4.1/css/all.min.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Ubuntu:400,600|Source+Code+Pro"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-light.min.css"><style>body>.footer,body>.navbar,body>.section{opacity:0}</style><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.8/css/lightgallery.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/justifiedGallery/3.7.0/css/justifiedGallery.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/outdated-browser/1.1.5/outdatedbrowser.min.css"><link rel="stylesheet" href="/css/back-to-top.css"><script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="//hm.baidu.com/hm.js?6cecff6d18ae0c22fd7ac294c80fe7c0";var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(e,c)}()</script><link rel="stylesheet" href="/css/progressbar.css"><script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js"></script><script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><link rel="stylesheet" href="/css/style.css"></head><body class="is-2-column"><nav class="navbar navbar-main"><div class="container"><div class="navbar-brand is-flex-center"><a class="navbar-item navbar-logo" href="/"><img src="https://imgs.borgor.cn/imgs20190625111723.jpg" alt="Identity API v3 (CURRENT)(一)" height="28"></a></div><div class="navbar-menu"><div class="navbar-start"><a class="navbar-item" href="/">首页</a> <a class="navbar-item" href="/archives">归档</a> <a class="navbar-item" href="/categories">分类</a> <a class="navbar-item" href="/tags">标签</a> <a class="navbar-item" href="/readinglist">书单</a></div><div class="navbar-end"><a class="navbar-item is-hidden-tablet catalogue" title="目录" href="javascript:;" target="_blank" rel="noopener"><i class="fas fa-list-ul"></i> </a><a class="navbar-item search" title="搜索" href="javascript:;" target="_blank" rel="noopener"><i class="fas fa-search"></i></a></div></div></div></nav><section class="section"><div class="container"><div class="columns"><div class="column is-8-tablet is-9-desktop is-9-widescreen has-order-2 column-main"><div class="card"><div class="card-content article"><div class="level article-meta is-size-7 is-uppercase is-mobile is-overflow-x-auto"><div class="level-left"><time class="level-item has-text-grey" datetime="2017-09-06T01:18:28.000Z">2017-09-06</time><div class="level-item"><a class="has-link-grey -link" href="/categories/Operations/">Operations</a>&nbsp;/&nbsp;<a class="has-link-grey -link" href="/categories/Operations/OpenStack/">OpenStack</a></div><span class="level-item has-text-grey">1 小时 读完 (大约 7994 个字) </span><span class="level-item has-text-grey" id="busuanzi_container_page_pv"><i class="far fa-eye"></i> <span id="busuanzi_value_page_pv">0</span>次访问</span></div></div><h1 class="title is-size-3 is-size-4-mobile has-text-weight-normal">Identity API v3 (CURRENT)(一)</h1><div class="content"><h4 id="原文地址"><a href="#原文地址" class="headerlink" title="原文地址"></a><a href="https://developer.openstack.org/api-ref/identity/v3/" target="_blank" rel="noopener">原文地址</a></h4><p>认证服务（Identity）生成一套令牌（Token）来授权用户访问OpenStack Restful Api。用户以授权令牌和服务端点（URL Endpoint）作为有效凭证访问其他服务的API。</p><p>每次访问一个OpenStack的API，都要提供名为X-Auth-Token，值为Token的访问头。</p><a id="more"></a><p>大多数的OpenStack项目都是以基于角色的访问控制（Role-Based Access Control，RBAC）作为规则来访问。</p><p>这些规则以JSON文件方式存放，并将JSON文件的名称和路径写入了认证服务配置的文件中。</p><p>值得注意的是，V3 API支持GET方式访问的HTTP访问头。每个访问使用相同的HTTP头部与状态进行通信。</p><p>更多关于认证服务的信息，请查阅在OpenStack管理手册中查看<a href="https://docs.openstack.org/keystone/latest/admin/identity-service-api-protection.html" target="_blank" rel="noopener">Identity API protection with role-based access control (RBAC)</a></p><h2 id="3-8版API更新内容"><a href="#3-8版API更新内容" class="headerlink" title="3.8版API更新内容"></a>3.8版API更新内容</h2><ul><li>允许服务用户（service user）获取有过期时间的Token</li><li>在用户列表和用户组列表功能中，添加了一个<code>password_expires_at</code>参数</li></ul><h2 id="3-7版API更新内容"><a href="#3-7版API更新内容" class="headerlink" title="3.7版API更新内容"></a>3.7版API更新内容</h2><ul><li><p>在用户相应对象中添加了<code>password_expires_at</code>参数</p></li><li><p>引入一个标志来绕过过期（Expire）和撤销（Revocation）检查。</p></li></ul><h2 id="关联项"><a href="#关联项" class="headerlink" title="关联项"></a>关联项</h2><p>下面的操作中的条目包含一个关系链接，它看起来是一个有效的URI，但是这些实际上是URN(统一的资源名)，它与GUID类似，只是使用了URI语法，以便更容易被读取。这些关系链接并不能解决任何有效的问题，仅用作显示关系。</p><h2 id="凭证（Authentication）与令牌管理"><a href="#凭证（Authentication）与令牌管理" class="headerlink" title="凭证（Authentication）与令牌管理"></a>凭证（Authentication）与令牌管理</h2><p>认证服务生成了一些令牌用于交换身份验证凭证。令牌表示用户身份已验证的身份，并可以选择性地授予对特定项目或域。</p><p>再认证请求中必须明确提供密码或令牌、作为认证凭证，同时可以选择认证授权范围。你可以将一个令牌授权给一个项目或者一个域，或什么范围都不指定。但不能同时将同一个令牌授权于一个项目或一个域。</p><p>令牌也拥有ID，并且在API响应头中以<code>X-Subject-Token</code>作为名字返回。</p><p>此外，可以验证一个令牌，包括令牌可访问的域或项目，令牌可访问的服务端点（EndPoint），也可以立即强制性销毁一个令牌。</p><p>当你拥有一个令牌时，你可以进行以下操作：</p><ul><li>在请求头中以 <code>X-Auth-Token</code> 方式提供该令牌，以访问其他服务提供的RestAPI。</li><li>验证该令牌，包括其授权项目或域、授权服务端点。</li><li>使用该令牌请求可以访问其他项目或域的新令牌。</li><li>立即强制性销毁该令牌。</li></ul><ul><li>列出被撤销的公钥基础设施(PKI)令牌。</li></ul><p>在认证服务3.7版本中，添加了两个新的配置选项，叫做<code>[resource] admin_project_name</code> 和<code>[resource] admin_project_domain_name</code>。这两个选项在标识了只有云管理员才能访问的项目，这样会在令牌相应参数中添加一个额外的字段<code>{is_admin_project: True}</code>。该字段可以在写入策略规则（Policy rules）时可以作为附加字段写入。</p><p>已超时的令牌被当做是无效令牌。部署时可以决定令牌可以被存储多长时间。</p><p>在验证身份时可能会出现以下错误：</p><table><thead><tr><th>响应代码</th><th>描述</th></tr></thead><tbody><tr><td><code>Bad Request (400)</code></td><td>身份服务未能像预期的那样解析请求。可能原因是：1、缺少一个必需的属性。2、指定了一个不被允许的属性，例如一个基本CRUD操作中的POST请求上的ID。3、指定了一个意外数据类型的属性。</td></tr><tr><td><code>Unauthorized (401)</code></td><td>可能原因如下：1、未进行认证。2、凭证无效，给定的 <code>X-Auth-Token</code> 头错误或无效。3、凭据无效。</td></tr><tr><td><code>Forbidden (403)</code></td><td>凭据虽然有效，但是凭据没有进行该操作的权限。</td></tr><tr><td><code>Not Found (404)</code></td><td>应用实体的ID不能被找到。对于一个POST请求，引用的实体可以在请求体中指定，而不是在URL中指定。</td></tr><tr><td><code>Conflict (409)</code></td><td>常见于POST或者PATCH操作。如：请求想要修改一个唯一属性，但这个属性与其他实体冲突或相同。或者请求想要创建已经存在的唯一值。又或者如：两次请求想要创建一个想用的用户。</td></tr></tbody></table><h2 id="认证与令牌相关"><a href="#认证与令牌相关" class="headerlink" title="认证与令牌相关"></a>认证与令牌相关</h2><h3 id="通过密码进行未指定授权范围的认证"><a href="#通过密码进行未指定授权范围的认证" class="headerlink" title="通过密码进行未指定授权范围的认证"></a>通过密码进行未指定授权范围的认证</h3><figure class="highlight shell hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[post] /v3/auth/tokens</span><br></pre></td></tr></table></figure><ul><li>关系项: <code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_tokens</code></li><li>认证一个请求，并生成一个令牌。使用密码作为认证方式。该认证方式获取的令牌<strong>未授权访问范围</strong>。</li><li>请求体必须包含有效的认证凭据：密码，并通过ID或者用户名指定用户。</li><li>正常返回代码：<code>201</code></li><li>可能产生的错误代码：<code>413</code>,<code>415</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code>,<code>409</code></li></ul><h4 id="请求参数"><a href="#请求参数" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>nocatalog (Optional)</td><td>URL</td><td>string</td><td>(v3.1以后) 响应信息是否包含目录，默认包含目录</td></tr><tr><td>domain</td><td>body</td><td>object</td><td>包含一个 <code>domain</code>的对象信息。</td></tr><tr><td>name (Optional)</td><td>body</td><td>string</td><td>用户名，如果未提供用户的ID，则该项为必选项，如果你提供了用户名，则必须要以ID或名称的形式提供域信息。</td></tr><tr><td>auth</td><td>body</td><td>object</td><td>一个<code>auth</code>对象</td></tr><tr><td>user</td><td>body</td><td>object</td><td>一个<code>user</code>对象</td></tr><tr><td>password</td><td>body</td><td>object</td><td><code>password</code> 对象，包括认证信息。</td></tr><tr><td>id (Optional)</td><td>body</td><td>string</td><td>用户的ID，如果未提供用户名，则该项必选。</td></tr><tr><td>identity</td><td>body</td><td>object</td><td>一个 <code>identity</code> 对象。</td></tr><tr><td>methods</td><td>body</td><td>array</td><td>认证方式，如果以密码方式认证，则填写为 <code>password</code>。</td></tr></tbody></table><h4 id="请求示例"><a href="#请求示例" class="headerlink" title="请求示例"></a>请求示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    <span class="hljs-attr">"auth"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"identity"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">                <span class="hljs-string">"password"</span></span><br><span class="line">            ],</span><br><span class="line">            <span class="hljs-attr">"password"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"user"</span>: &#123;</span><br><span class="line">                    <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span>,</span><br><span class="line">                    <span class="hljs-attr">"domain"</span>: &#123;</span><br><span class="line">                        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Default"</span></span><br><span class="line">                    &#125;,</span><br><span class="line">                    <span class="hljs-attr">"password"</span>: <span class="hljs-string">"devstacker"</span></span><br><span class="line">                &#125;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="响应参数"><a href="#响应参数" class="headerlink" title="响应参数"></a>响应参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Subject-Token</td><td>header</td><td>string</td><td>认证返回的令牌，响应中在头部返回令牌ID，而不是在响应体中。</td></tr><tr><td>domain</td><td>body</td><td>object</td><td>一个 <code>domain</code> 域对象，包含如下内容：</td></tr><tr><td>methods</td><td>body</td><td>array</td><td>认证方式，指定为 <code>password</code>。</td></tr><tr><td>expires_at</td><td>body</td><td>string</td><td>令牌失效时间，格式为标准<a href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank" rel="noopener">ISO 8601</a>:<code>CCYY-MM-DDThh:mm:ss.sssZ</code>。例如, <code>2015-08-27T09:49:58.000000Z</code>，如果令牌不过期，则范围<code>null</code>。</td></tr><tr><td>token</td><td>body</td><td>object</td><td>一个 <code>token</code> 对象。</td></tr><tr><td>extras</td><td>body</td><td>object</td><td>如果有的话，以键值对方式返回一组元数据。</td></tr><tr><td>user</td><td>body</td><td>object</td><td>一个 <code>user</code> 对象。</td></tr><tr><td>audit_ids</td><td>body</td><td>array</td><td>包含一个或者两个审计ID。审计ID是随机产生的唯一值，对URL安全，可以用于追踪令牌行为。第一个审计ID用于当前令牌。第二个审计ID仅作用于重新申请具有访问范围的令牌。重新申请新令牌后失效。重新授权的令牌被交换给另外一个具有相同或者不同的访问范围的令牌。你可以使用这些审计ID追踪这些令牌或者令牌链的访问行为，而不会将令牌暴露给未授权用户。</td></tr><tr><td>issued_at</td><td>body</td><td>string</td><td>令牌的发放时间，格式为标准<a href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank" rel="noopener">ISO 8601</a>:<code>CCYY-MM-DDThh:mm:ss.sssZ</code>，如： <code>2015-08-27T09:49:58.000000Z</code>.</td></tr><tr><td>id (Optional)</td><td>body</td><td>string</td><td>用户ID，如果用户名未指定用户对象。</td></tr><tr><td>name (Optional)</td><td>body</td><td>string</td><td>用户名，如果未提供用户的ID，则该项为必选项，如果你提供了用户名，则必须要以ID或名称的形式提供域信息。</td></tr></tbody></table><h4 id="响应示例"><a href="#响应示例" class="headerlink" title="响应示例"></a>响应示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    <span class="hljs-attr">"token"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">            <span class="hljs-string">"password"</span></span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"expires_at"</span>: <span class="hljs-string">"2015-11-06T15:32:17.893769Z"</span>,</span><br><span class="line">        <span class="hljs-attr">"extras"</span>: &#123;&#125;,</span><br><span class="line">        <span class="hljs-attr">"user"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"domain"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"id"</span>: <span class="hljs-string">"default"</span>,</span><br><span class="line">                <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Default"</span></span><br><span class="line">            &#125;,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"423f19a4ac1e4f48bbb4180756e6eb6c"</span>,</span><br><span class="line">            <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span>,</span><br><span class="line">            <span class="hljs-attr">"password_expires_at"</span>: <span class="hljs-literal">null</span></span><br><span class="line">        &#125;,</span><br><span class="line">        <span class="hljs-attr">"audit_ids"</span>: [</span><br><span class="line">            <span class="hljs-string">"ZzZwkUflQfygX7pdYDBCQQ"</span></span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"issued_at"</span>: <span class="hljs-string">"2015-11-06T14:32:17.893797Z"</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="通过密码进行指定授权范围的认证"><a href="#通过密码进行指定授权范围的认证" class="headerlink" title="通过密码进行指定授权范围的认证"></a>通过密码进行指定授权范围的认证</h3><figure class="highlight shell hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[post] /v3/auth/tokens</span><br></pre></td></tr></table></figure><ul><li>关系项: <code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_tokens</code></li><li>认证一个请求，并生成一个令牌。使用密码作为认证方式。该认证方式获取的令牌<strong>具有授权访问范围</strong>。</li><li>请求体必须包含有效的认证凭据：密码，并通过ID或者用户名指定用户。</li><li>正常返回代码：<code>201</code></li><li>可能产生的错误代码：<code>413</code>,<code>415</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code>,<code>409</code></li></ul><h4 id="请求参数-1"><a href="#请求参数-1" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>nocatalog (Optional)</td><td>query</td><td>string</td><td>(v3.1以后) 响应信息是否包含目录，默认包含目录</td></tr><tr><td>name (Optional)</td><td>body</td><td>string</td><td>用户名，如果未提供用户的ID，则该项为必选项，如果你提供了用户名，则必须要以ID或名称的形式提供域信息。</td></tr><tr><td>auth</td><td>body</td><td>object</td><td>一个<code>auth</code>对象</td></tr><tr><td>user</td><td>body</td><td>object</td><td>一个<code>user</code>对象</td></tr><tr><td>scope (Optional)</td><td>body</td><td>string</td><td>授权范围，包含一个项目或者一个域(v3.4以后)。一个令牌不能同时制定项目和域，否则会返回一个400的Http错误，使用ID来表示一个项目，但如果项目是以名称给定，则项目的域也应该被一同指定。域也如此。</td></tr><tr><td>password</td><td>body</td><td>object</td><td><code>password</code> 对象，包括认证信息。</td></tr><tr><td>id (Optional)</td><td>body</td><td>string</td><td>用户的ID，如果未提供用户名，则该项必选。</td></tr><tr><td>identity</td><td>body</td><td>object</td><td>一个<code>identity</code>对象</td></tr><tr><td>methods</td><td>body</td><td>array</td><td>认证方式，如果以密码方式认证，则填写为 <code>password</code>。</td></tr></tbody></table><h4 id="请求示例-1"><a href="#请求示例-1" class="headerlink" title="请求示例"></a>请求示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    <span class="hljs-attr">"auth"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"identity"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">                <span class="hljs-string">"password"</span></span><br><span class="line">            ],</span><br><span class="line">            <span class="hljs-attr">"password"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"user"</span>: &#123;</span><br><span class="line">                    <span class="hljs-attr">"id"</span>: <span class="hljs-string">"ee4dfb6e5540447cb3741905149d9b6e"</span>,</span><br><span class="line">                    <span class="hljs-attr">"password"</span>: <span class="hljs-string">"devstacker"</span></span><br><span class="line">                &#125;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;,</span><br><span class="line">        <span class="hljs-attr">"scope"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"project"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"id"</span>: <span class="hljs-string">"a6944d763bf64ee6a275f1263fae0352"</span></span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="响应参数-1"><a href="#响应参数-1" class="headerlink" title="响应参数"></a>响应参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Subject-Token</td><td>header</td><td>string</td><td>认证返回的令牌，响应中在头部返回令牌ID，而不是在响应体中。</td></tr><tr><td>domain</td><td>body</td><td>object</td><td>一个 <code>domain</code> 域对象，包含如下内容：</td></tr><tr><td>methods</td><td>body</td><td>array</td><td>认证方式，指定为 <code>password</code>。</td></tr><tr><td>expires_at</td><td>body</td><td>string</td><td>令牌失效时间，格式为标准<a href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank" rel="noopener">ISO 8601</a>:<code>CCYY-MM-DDThh:mm:ss.sssZ</code>。例如, <code>2015-08-27T09:49:58.000000Z</code>，如果令牌不过期，则范围<code>null</code>。</td></tr><tr><td>token</td><td>body</td><td>object</td><td>一个 <code>token</code> 对象。</td></tr><tr><td>extras</td><td>body</td><td>object</td><td>如果有的话，以键值对方式返回一组元数据。</td></tr><tr><td>user</td><td>body</td><td>object</td><td>一个 <code>user</code> 对象。</td></tr><tr><td>audit_ids</td><td>body</td><td>array</td><td>包含一个或者两个审计ID。审计ID是随机产生的唯一值，对URL安全，可以用于追踪令牌行为。第一个审计ID用于当前令牌。第二个审计ID仅作用于重新申请具有访问范围的令牌。重新申请新令牌后失效。重新授权的令牌被交换给另外一个具有相同或者不同的访问范围的令牌。你可以使用这些审计ID追踪这些令牌或者令牌链的访问行为，而不会将令牌暴露给未授权用户。</td></tr><tr><td>issued_at</td><td>body</td><td>string</td><td>令牌的发放时间，格式为标准<a href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank" rel="noopener">ISO 8601</a>:<code>CCYY-MM-DDThh:mm:ss.sssZ</code>，如： <code>2015-08-27T09:49:58.000000Z</code>.</td></tr><tr><td>id (Optional)</td><td>body</td><td>string</td><td>用户ID，如果用户名未指定用户对象。</td></tr><tr><td>name (Optional)</td><td>body</td><td>string</td><td>用户名，如果未提供用户的ID，则该项为必选项，如果你提供了用户名，则必须要以ID或名称的形式提供域信息。</td></tr></tbody></table><h4 id="响应示例-1"><a href="#响应示例-1" class="headerlink" title="响应示例"></a>响应示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">  <span class="hljs-attr">"token"</span>: &#123;</span><br><span class="line">    <span class="hljs-attr">"is_domain"</span>: <span class="hljs-literal">false</span>,</span><br><span class="line">    <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">      <span class="hljs-string">"password"</span></span><br><span class="line">    ],</span><br><span class="line">    <span class="hljs-attr">"roles"</span>: [</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"8dc6c830774649d2a006dceb82d289d6"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span></span><br><span class="line">      &#125;</span><br><span class="line">    ],</span><br><span class="line">    <span class="hljs-attr">"expires_at"</span>: <span class="hljs-string">"2017-09-06T07:12:39.000000Z"</span>,</span><br><span class="line">    <span class="hljs-attr">"project"</span>: &#123;</span><br><span class="line">      <span class="hljs-attr">"domain"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"default"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Default"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      <span class="hljs-attr">"id"</span>: <span class="hljs-string">"364f0b03e8a643dc8c797020bdf0cd62"</span>,</span><br><span class="line">      <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span></span><br><span class="line">    &#125;,</span><br><span class="line">    <span class="hljs-attr">"catalog"</span>: [</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/volume/v3/364f0b03e8a643dc8c797020bdf0cd62"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"5616c29ba741430f9e015608c06706b6"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"volumev3"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"0d8dcd691e0341ef9df4244bb4e35d15"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"cinderv3"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/compute/v2.1"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"6ad84f3a538c412f9cd7237e88918b2b"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"compute"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"23f6e93ca9f645a7ba5d5803895d0efb"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"nova"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/volume/v1/364f0b03e8a643dc8c797020bdf0cd62"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"cb9af7e6f0e841afafc3231a36206854"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"volume"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"401f2e0f52bb466da2f4ffd6f78002be"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"cinder"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/compute/v2/364f0b03e8a643dc8c797020bdf0cd62"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"34ac37b8285c4893865ecf9f87ec0db0"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"compute_legacy"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"76d1e60b841f40d2bdff066bd7bf0880"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"nova_legacy"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/placement"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"6829782399744a40b2546e5fdc852f53"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"placement"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"7db653c696ae4f8fa75d7b11baedfeb7"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"placement"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/volume/v2/364f0b03e8a643dc8c797020bdf0cd62"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"4661bfc74342404c9f17e64476cfa088"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"volumev2"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"b31512522dc4467d99b4efca79c6939f"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"cinderv2"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6:9696/"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"bf91132a08634b3f8ac5a462d753e2f4"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"network"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"bd3397fb192848c79e22daad556c6c5d"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"neutron"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/identity"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"admin"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"8e7b3a3865394a3ab02087f582ef3be6"</span></span><br><span class="line">          &#125;,</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/identity"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"b05c72d3a1ea457db3ab0f0bb6db4571"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"identity"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"d4463a0b1e5d4c2f8fbf24b03357eae2"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"keystone"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/image"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"7bf611c21d684d5f81b61d14ba151202"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"image"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"fd22b458ad114b29909ce0ef55f18688"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"glance"</span></span><br><span class="line">      &#125;</span><br><span class="line">    ],</span><br><span class="line">    <span class="hljs-attr">"user"</span>: &#123;</span><br><span class="line">      <span class="hljs-attr">"password_expires_at"</span>: <span class="hljs-literal">null</span>,</span><br><span class="line">      <span class="hljs-attr">"domain"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"default"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Default"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      <span class="hljs-attr">"id"</span>: <span class="hljs-string">"0b159a8c547c4b839e106d25383e4f53"</span>,</span><br><span class="line">      <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span></span><br><span class="line">    &#125;,</span><br><span class="line">    <span class="hljs-attr">"audit_ids"</span>: [</span><br><span class="line">      <span class="hljs-string">"I61_10JAS7-_cjCpG7HIag"</span></span><br><span class="line">    ],</span><br><span class="line">    <span class="hljs-attr">"issued_at"</span>: <span class="hljs-string">"2017-09-06T06:12:39.000000Z"</span></span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="使用显式授权的密码身份验证-未指定授权范围"><a href="#使用显式授权的密码身份验证-未指定授权范围" class="headerlink" title="使用显式授权的密码身份验证(未指定授权范围)"></a>使用显式授权的密码身份验证(未指定授权范围)</h3><figure class="highlight shell hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[post] /v3/auth/tokens</span><br></pre></td></tr></table></figure><ul><li>关系项: <code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_tokens</code></li><li>认证一个请求，并生成一个令牌。使用密码作为认证方式。该认证方式获取的令牌<strong>无授权访问范围</strong>。</li><li>请求体必须包含有效的认证凭据：密码，并通过ID或者用户名指定用户。</li><li>正常返回代码：<code>201</code></li><li>可能产生的错误代码：<code>413</code>,<code>415</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code>,<code>409</code></li></ul><h4 id="请求参数-2"><a href="#请求参数-2" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>nocatalog (Optional)</td><td>query</td><td>string</td><td>(v3.1以后) 响应信息是否包含目录，默认包含目录</td></tr><tr><td>name (Optional)</td><td>body</td><td>string</td><td>用户名，如果未提供用户的ID，则该项为必选项，如果你提供了用户名，则必须要以ID或名称的形式提供域信息。</td></tr><tr><td>auth</td><td>body</td><td>object</td><td>一个<code>auth</code>对象</td></tr><tr><td>user</td><td>body</td><td>object</td><td>一个<code>user</code>对象</td></tr><tr><td>scope (Optional)</td><td>body</td><td>string</td><td>授权范围，包含一个项目或者一个域(v3.4以后)。一个令牌不能同时制定项目和域，否则会返回一个400的Http错误，使用ID来表示一个项目，但如果项目是以名称给定，则项目的域也应该被一同指定。域也如此。</td></tr><tr><td>password</td><td>body</td><td>object</td><td><code>password</code> 对象，包括认证信息。</td></tr><tr><td>id (Optional)</td><td>body</td><td>string</td><td>用户的ID，如果未提供用户名，则该项必选。</td></tr><tr><td>identity</td><td>body</td><td>object</td><td>一个 <code>identity</code> 对象。</td></tr><tr><td>methods</td><td>body</td><td>array</td><td>认证方式，如果以密码方式认证，则填写为 <code>password</code>。</td></tr></tbody></table><h4 id="请求示例-2"><a href="#请求示例-2" class="headerlink" title="请求示例"></a>请求示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    <span class="hljs-attr">"auth"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"identity"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">                <span class="hljs-string">"password"</span></span><br><span class="line">            ],</span><br><span class="line">            <span class="hljs-attr">"password"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"user"</span>: &#123;</span><br><span class="line">                    <span class="hljs-attr">"id"</span>: <span class="hljs-string">"ee4dfb6e5540447cb3741905149d9b6e"</span>,</span><br><span class="line">                    <span class="hljs-attr">"password"</span>: <span class="hljs-string">"devstacker"</span></span><br><span class="line">                &#125;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;,</span><br><span class="line">        <span class="hljs-attr">"scope"</span>: <span class="hljs-string">"unscoped"</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="响应参数-2"><a href="#响应参数-2" class="headerlink" title="响应参数"></a>响应参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Subject-Token</td><td>header</td><td>string</td><td>认证返回的令牌，响应中在头部返回令牌ID，而不是在响应体中。</td></tr><tr><td>domain</td><td>body</td><td>object</td><td>一个 <code>domain</code> 域对象，包含如下内容：</td></tr><tr><td>methods</td><td>body</td><td>array</td><td>认证方式，指定为 <code>password</code>。</td></tr><tr><td>roles</td><td>body</td><td>array</td><td>A list of <code>role</code> objects, each containing:</td></tr><tr><td>expires_at</td><td>body</td><td>string</td><td>令牌失效时间，格式为标准<a href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank" rel="noopener">ISO 8601</a>:<code>CCYY-MM-DDThh:mm:ss.sssZ</code>。例如, <code>2015-08-27T09:49:58.000000Z</code>，如果令牌不过期，则范围<code>null</code>。</td></tr><tr><td>token</td><td>body</td><td>object</td><td>一个 <code>token</code> 对象。</td></tr><tr><td>extras</td><td>body</td><td>object</td><td>如果有的话，以键值对方式返回一组元数据。</td></tr><tr><td>user</td><td>body</td><td>object</td><td>一个 <code>user</code> 对象。</td></tr><tr><td>audit_ids</td><td>body</td><td>array</td><td>包含一个或者两个审计ID。审计ID是随机产生的唯一值，对URL安全，可以用于追踪令牌行为。第一个审计ID用于当前令牌。第二个审计ID仅作用于重新申请具有访问范围的令牌。重新申请新令牌后失效。重新授权的令牌被交换给另外一个具有相同或者不同的访问范围的令牌。你可以使用这些审计ID追踪这些令牌或者令牌链的访问行为，而不会将令牌暴露给未授权用户。</td></tr><tr><td>issued_at</td><td>body</td><td>string</td><td>令牌的发放时间，格式为标准<a href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank" rel="noopener">ISO 8601</a>:<code>CCYY-MM-DDThh:mm:ss.sssZ</code>，如： <code>2015-08-27T09:49:58.000000Z</code>.</td></tr><tr><td>id (Optional)</td><td>body</td><td>string</td><td>用户ID，如果用户名未指定用户对象。</td></tr><tr><td>name (Optional)</td><td>body</td><td>string</td><td>用户名，如果未提供用户的ID，则该项为必选项，如果你提供了用户名，则必须要以ID或名称的形式提供域信息。</td></tr></tbody></table><h4 id="响应示例-2"><a href="#响应示例-2" class="headerlink" title="响应示例"></a>响应示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    <span class="hljs-attr">"token"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">            <span class="hljs-string">"password"</span></span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"expires_at"</span>: <span class="hljs-string">"2015-11-09T01:42:57.527363Z"</span>,</span><br><span class="line">        <span class="hljs-attr">"extras"</span>: &#123;&#125;,</span><br><span class="line">        <span class="hljs-attr">"user"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"domain"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"id"</span>: <span class="hljs-string">"default"</span>,</span><br><span class="line">                <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Default"</span></span><br><span class="line">            &#125;,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"ee4dfb6e5540447cb3741905149d9b6e"</span>,</span><br><span class="line">            <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span>,</span><br><span class="line">            <span class="hljs-attr">"password_expires_at"</span>: <span class="hljs-literal">null</span></span><br><span class="line">        &#125;,</span><br><span class="line">        <span class="hljs-attr">"audit_ids"</span>: [</span><br><span class="line">            <span class="hljs-string">"lC2Wj1jbQe-dLjLyOx4qPQ"</span></span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"issued_at"</span>: <span class="hljs-string">"2015-11-09T00:42:57.527404Z"</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="使用令牌进行未指定范围授权的认证"><a href="#使用令牌进行未指定范围授权的认证" class="headerlink" title="使用令牌进行未指定范围授权的认证"></a>使用令牌进行未指定范围授权的认证</h3><figure class="highlight shell hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[post] /v3/auth/tokens</span><br></pre></td></tr></table></figure><ul><li>关系项: <code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_tokens</code></li><li>认证一个请求，并生成一个令牌。使用<strong>令牌</strong>作为认证方式。该认证方式获取的新令牌<strong>无授权访问范围</strong>。</li><li>请求体必须包含有效的认证凭据：密码，并通过ID或者用户名指定用户。</li><li>正常返回代码：<code>201</code></li><li>可能产生的错误代码：<code>413</code>,<code>415</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code>,<code>409</code></li></ul><h4 id="请求参数-3"><a href="#请求参数-3" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>Name</th><th>In</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>nocatalog (Optional)</td><td>query</td><td>string</td><td>(v3.1以后) 响应信息是否包含目录，默认包含目录</td></tr><tr><td>identity</td><td>body</td><td>object</td><td>一个 <code>identity</code> 对象。</td></tr><tr><td>token</td><td>body</td><td>object</td><td>一个<code>token</code>对象。使用令牌身份验证方法。此方法通常与更改授权范围的请求一起使用。</td></tr><tr><td>id</td><td>body</td><td>string</td><td>一个<code>token</code>的ID</td></tr><tr><td>auth</td><td>body</td><td>object</td><td>一个<code>auth</code>对象</td></tr><tr><td>methods</td><td>body</td><td>array</td><td>认证方式，对于以令牌认证的方式，指定为<code>token</code></td></tr></tbody></table><h4 id="请求示例-3"><a href="#请求示例-3" class="headerlink" title="请求示例"></a>请求示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    <span class="hljs-attr">"auth"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"identity"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">                <span class="hljs-string">"token"</span></span><br><span class="line">            ],</span><br><span class="line">            <span class="hljs-attr">"token"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"id"</span>: <span class="hljs-string">"'$OS_TOKEN'"</span></span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="响应参数-3"><a href="#响应参数-3" class="headerlink" title="响应参数"></a>响应参数</h4><table><thead><tr><th>Name</th><th>In</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>X-Subject-Token</td><td>header</td><td>string</td><td>认证返回的令牌，响应中在头部返回令牌ID，而不是在响应体中。</td></tr></tbody></table><h4 id="响应示例-3"><a href="#响应示例-3" class="headerlink" title="响应示例"></a>响应示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    <span class="hljs-attr">"token"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">            <span class="hljs-string">"token"</span></span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"expires_at"</span>: <span class="hljs-string">"2015-11-05T22:00:11.000000Z"</span>,</span><br><span class="line">        <span class="hljs-attr">"extras"</span>: &#123;&#125;,</span><br><span class="line">        <span class="hljs-attr">"user"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"domain"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"id"</span>: <span class="hljs-string">"default"</span>,</span><br><span class="line">                <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Default"</span></span><br><span class="line">            &#125;,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"10a2e6e717a245d9acad3e5f97aeca3d"</span>,</span><br><span class="line">            <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span>,</span><br><span class="line">            <span class="hljs-attr">"password_expires_at"</span>: <span class="hljs-literal">null</span></span><br><span class="line">        &#125;,</span><br><span class="line">        <span class="hljs-attr">"audit_ids"</span>: [</span><br><span class="line">            <span class="hljs-string">"mAjXQhiYRyKwkB4qygdLVg"</span></span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"issued_at"</span>: <span class="hljs-string">"2015-11-05T21:00:33.819948Z"</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="使用范围授权的令牌身份验证"><a href="#使用范围授权的令牌身份验证" class="headerlink" title="使用范围授权的令牌身份验证"></a>使用范围授权的令牌身份验证</h3><figure class="highlight shell hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[post] /v3/auth/tokens</span><br></pre></td></tr></table></figure><ul><li>关系项: <code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_tokens</code></li><li>认证一个请求，并生成一个令牌。使用<strong>令牌</strong>作为认证方式。该认证方式获取的令牌<strong>具有授权访问范围</strong>。</li><li>请求体必须包含有效的认证凭据：密码，并通过ID或者用户名指定用户。</li><li>正常返回代码：<code>201</code></li><li>可能产生的错误代码：<code>413</code>,<code>415</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code>,<code>409</code></li></ul><h4 id="请求参数-4"><a href="#请求参数-4" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>nocatalog (Optional)</td><td>query</td><td>string</td><td>(v3.1以后) 响应信息是否包含目录，默认包含目录</td></tr><tr><td>methods</td><td>body</td><td>array</td><td>认证方式，如果以密码方式认证，则填写为 <code>token</code>。</td></tr><tr><td>auth</td><td>body</td><td>object</td><td>一个<code>auth</code>对象</td></tr><tr><td>token</td><td>body</td><td>object</td><td>一个<code>token</code>对象。使用令牌身份验证方法。此方法通常与更改授权范围的请求一起使用。</td></tr><tr><td>audit_ids</td><td>body</td><td>array</td><td>包含一个或者两个审计ID。审计ID是随机产生的唯一值，对URL安全，可以用于追踪令牌行为。第一个审计ID用于当前令牌。第二个审计ID仅作用于重新申请具有访问范围的令牌。重新申请新令牌后失效。重新授权的令牌被交换给另外一个具有相同或者不同的访问范围的令牌。你可以使用这些审计ID追踪这些令牌或者令牌链的访问行为，而不会将令牌暴露给未授权用户。</td></tr><tr><td>scope (Optional)</td><td>body</td><td>string</td><td>授权范围，包含一个项目或者一个域(v3.4以后)。一个令牌不能同时制定项目和域，否则会返回一个400的Http错误，使用ID来表示一个项目，但如果项目是以名称给定，则项目的域也应该被一同指定。域也如此。</td></tr><tr><td>id</td><td>body</td><td>string</td><td>一个<code>token</code>的ID</td></tr><tr><td>identity</td><td>body</td><td>object</td><td>一个<code>identity</code>对象</td></tr></tbody></table><h4 id="请求示例-4"><a href="#请求示例-4" class="headerlink" title="请求示例"></a>请求示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    <span class="hljs-attr">"auth"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"identity"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">                <span class="hljs-string">"token"</span></span><br><span class="line">            ],</span><br><span class="line">            <span class="hljs-attr">"token"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"id"</span>: <span class="hljs-string">"'$OS_TOKEN'"</span></span><br><span class="line">            &#125;</span><br><span class="line">        &#125;,</span><br><span class="line">        <span class="hljs-attr">"scope"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"project"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"id"</span>: <span class="hljs-string">"5b50efd009b540559104ee3c03bbb2b7"</span></span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="响应参数-4"><a href="#响应参数-4" class="headerlink" title="响应参数"></a>响应参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Subject-Token</td><td>header</td><td>string</td><td>认证返回的令牌，响应中在头部返回令牌ID，而不是在响应体中。</td></tr></tbody></table><h4 id="响应示例-4"><a href="#响应示例-4" class="headerlink" title="响应示例"></a>响应示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">  <span class="hljs-attr">"token"</span>: &#123;</span><br><span class="line">    <span class="hljs-attr">"is_domain"</span>: <span class="hljs-literal">false</span>,</span><br><span class="line">    <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">      <span class="hljs-string">"token"</span>,</span><br><span class="line">      <span class="hljs-string">"password"</span></span><br><span class="line">    ],</span><br><span class="line">    <span class="hljs-attr">"roles"</span>: [</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"8dc6c830774649d2a006dceb82d289d6"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span></span><br><span class="line">      &#125;</span><br><span class="line">    ],</span><br><span class="line">    <span class="hljs-attr">"expires_at"</span>: <span class="hljs-string">"2017-09-06T08:59:49.000000Z"</span>,</span><br><span class="line">    <span class="hljs-attr">"project"</span>: &#123;</span><br><span class="line">      <span class="hljs-attr">"domain"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"default"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Default"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      <span class="hljs-attr">"id"</span>: <span class="hljs-string">"364f0b03e8a643dc8c797020bdf0cd62"</span>,</span><br><span class="line">      <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span></span><br><span class="line">    &#125;,</span><br><span class="line">    <span class="hljs-attr">"catalog"</span>: [</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/volume/v3/364f0b03e8a643dc8c797020bdf0cd62"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"5616c29ba741430f9e015608c06706b6"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"volumev3"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"0d8dcd691e0341ef9df4244bb4e35d15"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"cinderv3"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/compute/v2.1"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"6ad84f3a538c412f9cd7237e88918b2b"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"compute"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"23f6e93ca9f645a7ba5d5803895d0efb"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"nova"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/volume/v1/364f0b03e8a643dc8c797020bdf0cd62"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"cb9af7e6f0e841afafc3231a36206854"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"volume"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"401f2e0f52bb466da2f4ffd6f78002be"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"cinder"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/compute/v2/364f0b03e8a643dc8c797020bdf0cd62"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"34ac37b8285c4893865ecf9f87ec0db0"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"compute_legacy"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"76d1e60b841f40d2bdff066bd7bf0880"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"nova_legacy"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/placement"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"6829782399744a40b2546e5fdc852f53"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"placement"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"7db653c696ae4f8fa75d7b11baedfeb7"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"placement"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/volume/v2/364f0b03e8a643dc8c797020bdf0cd62"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"4661bfc74342404c9f17e64476cfa088"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"volumev2"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"b31512522dc4467d99b4efca79c6939f"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"cinderv2"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6:9696/"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"bf91132a08634b3f8ac5a462d753e2f4"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"network"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"bd3397fb192848c79e22daad556c6c5d"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"neutron"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/identity"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"admin"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"8e7b3a3865394a3ab02087f582ef3be6"</span></span><br><span class="line">          &#125;,</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/identity"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"b05c72d3a1ea457db3ab0f0bb6db4571"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"identity"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"d4463a0b1e5d4c2f8fbf24b03357eae2"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"keystone"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      &#123;</span><br><span class="line">        <span class="hljs-attr">"endpoints"</span>: [</span><br><span class="line">          &#123;</span><br><span class="line">            <span class="hljs-attr">"url"</span>: <span class="hljs-string">"http://10.0.0.6/image"</span>,</span><br><span class="line">            <span class="hljs-attr">"interface"</span>: <span class="hljs-string">"public"</span>,</span><br><span class="line">            <span class="hljs-attr">"region"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"region_id"</span>: <span class="hljs-string">"RegionOne"</span>,</span><br><span class="line">            <span class="hljs-attr">"id"</span>: <span class="hljs-string">"7bf611c21d684d5f81b61d14ba151202"</span></span><br><span class="line">          &#125;</span><br><span class="line">        ],</span><br><span class="line">        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"image"</span>,</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"fd22b458ad114b29909ce0ef55f18688"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"glance"</span></span><br><span class="line">      &#125;</span><br><span class="line">    ],</span><br><span class="line">    <span class="hljs-attr">"user"</span>: &#123;</span><br><span class="line">      <span class="hljs-attr">"password_expires_at"</span>: <span class="hljs-literal">null</span>,</span><br><span class="line">      <span class="hljs-attr">"domain"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"default"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Default"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      <span class="hljs-attr">"id"</span>: <span class="hljs-string">"0b159a8c547c4b839e106d25383e4f53"</span>,</span><br><span class="line">      <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span></span><br><span class="line">    &#125;,</span><br><span class="line">    <span class="hljs-attr">"audit_ids"</span>: [</span><br><span class="line">      <span class="hljs-string">"6RxfbwaLRhqC2tQilKpo4Q"</span>,</span><br><span class="line">      <span class="hljs-string">"h3MVbyyIRz2rf7UYvqkzPA"</span></span><br><span class="line">    ],</span><br><span class="line">    <span class="hljs-attr">"issued_at"</span>: <span class="hljs-string">"2017-09-06T08:10:00.000000Z"</span></span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="使用显式授权的令牌身份认证（未指定授权范围）"><a href="#使用显式授权的令牌身份认证（未指定授权范围）" class="headerlink" title="使用显式授权的令牌身份认证（未指定授权范围）"></a>使用显式授权的令牌身份认证（未指定授权范围）</h3><figure class="highlight shell hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[post] /v3/auth/tokens</span><br></pre></td></tr></table></figure><ul><li>关系项: <code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_tokens</code></li><li>认证一个请求，并生成一个令牌。使用令牌作为认证方式。该认证方式获取的令牌<strong>显式无授权访问范围</strong>。</li><li>请求体必须包含有效的认证凭据：密码，并通过ID或者用户名指定用户。</li><li>正常返回代码：<code>201</code></li><li>可能产生的错误代码：<code>413</code>,<code>415</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code>,<code>409</code></li></ul><h4 id="请求参数-5"><a href="#请求参数-5" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>nocatalog (Optional)</td><td>query</td><td>string</td><td>(v3.1以后) 响应信息是否包含目录，默认包含目录</td></tr><tr><td>methods</td><td>body</td><td>array</td><td>授权方式，作为以<code>token</code>认证的方式来说，指定为<code>token</code></td></tr><tr><td>auth</td><td>body</td><td>object</td><td>一个<code>auth</code>对象</td></tr><tr><td>token</td><td>body</td><td>object</td><td>一个<code>token</code>对象。使用令牌身份验证方法。此方法通常与更改授权范围的请求一起使用。</td></tr><tr><td>audit_ids</td><td>body</td><td>array</td><td>包含一个或者两个审计ID。审计ID是随机产生的唯一值，对URL安全，可以用于追踪令牌行为。第一个审计ID用于当前令牌。第二个审计ID仅作用于重新申请具有访问范围的令牌。重新申请新令牌后失效。重新授权的令牌被交换给另外一个具有相同或者不同的访问范围的令牌。你可以使用这些审计ID追踪这些令牌或者令牌链的访问行为，而不会将令牌暴露给未授权用户。</td></tr><tr><td>scope (Optional)</td><td>body</td><td>string</td><td>授权范围，包含一个项目或者一个域(v3.4以后)。一个令牌不能同时制定项目和域，否则会返回一个400的Http错误，使用ID来表示一个项目，但如果项目是以名称给定，则项目的域也应该被一同指定。域也如此。</td></tr><tr><td>id</td><td>body</td><td>string</td><td>一个<code>token</code>的ID</td></tr><tr><td>identity</td><td>body</td><td>object</td><td>一个 <code>identity</code> 对象。</td></tr></tbody></table><h4 id="请求示例-5"><a href="#请求示例-5" class="headerlink" title="请求示例"></a>请求示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    <span class="hljs-attr">"auth"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"identity"</span>: &#123;</span><br><span class="line">            <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">                <span class="hljs-string">"token"</span></span><br><span class="line">            ],</span><br><span class="line">            <span class="hljs-attr">"token"</span>: &#123;</span><br><span class="line">                <span class="hljs-attr">"id"</span>: <span class="hljs-string">"'$OS_TOKEN'"</span></span><br><span class="line">            &#125;</span><br><span class="line">        &#125;,</span><br><span class="line">        <span class="hljs-attr">"scope"</span>: <span class="hljs-string">"unscoped"</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="响应参数-5"><a href="#响应参数-5" class="headerlink" title="响应参数"></a>响应参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Subject-Token</td><td>header</td><td>string</td><td>认证返回的令牌，响应中在头部返回令牌ID，而不是在响应体中。</td></tr></tbody></table><h4 id="响应示例-5"><a href="#响应示例-5" class="headerlink" title="响应示例"></a>响应示例</h4><figure class="highlight json hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">  <span class="hljs-attr">"token"</span>: &#123;</span><br><span class="line">    <span class="hljs-attr">"issued_at"</span>: <span class="hljs-string">"2017-09-06T08:22:35.000000Z"</span>,</span><br><span class="line">    <span class="hljs-attr">"audit_ids"</span>: [</span><br><span class="line">      <span class="hljs-string">"suwF8CnXT5qAQFZKnSlUvQ"</span>,</span><br><span class="line">      <span class="hljs-string">"h3MVbyyIRz2rf7UYvqkzPA"</span></span><br><span class="line">    ],</span><br><span class="line">    <span class="hljs-attr">"methods"</span>: [</span><br><span class="line">      <span class="hljs-string">"token"</span>,</span><br><span class="line">      <span class="hljs-string">"password"</span></span><br><span class="line">    ],</span><br><span class="line">    <span class="hljs-attr">"expires_at"</span>: <span class="hljs-string">"2017-09-06T08:59:49.000000Z"</span>,</span><br><span class="line">    <span class="hljs-attr">"user"</span>: &#123;</span><br><span class="line">      <span class="hljs-attr">"password_expires_at"</span>: <span class="hljs-literal">null</span>,</span><br><span class="line">      <span class="hljs-attr">"domain"</span>: &#123;</span><br><span class="line">        <span class="hljs-attr">"id"</span>: <span class="hljs-string">"default"</span>,</span><br><span class="line">        <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Default"</span></span><br><span class="line">      &#125;,</span><br><span class="line">      <span class="hljs-attr">"id"</span>: <span class="hljs-string">"0b159a8c547c4b839e106d25383e4f53"</span>,</span><br><span class="line">      <span class="hljs-attr">"name"</span>: <span class="hljs-string">"admin"</span></span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="验证和显示令牌信息"><a href="#验证和显示令牌信息" class="headerlink" title="验证和显示令牌信息"></a>验证和显示令牌信息</h3><figure class="highlight shell hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[get] /v3/auth/tokens</span><br></pre></td></tr></table></figure><ul><li>关系项： <code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_tokens</code></li><li>验证和显示令牌相关信息，包括超时时间与授权范围等。</li><li>将你自己的<code>token</code>作为请求头中的<code>X-Auth-Token</code>传入。</li><li>将你想要验证的<code>token</code>作为请求头中的<code>X-Subject-Token</code>传入。</li><li>正常返回代码：<code>200</code></li><li>可能的错误返回码：<code>413</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code></li></ul><h4 id="请求参数-6"><a href="#请求参数-6" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Auth-Token</td><td>header</td><td>string</td><td>管理员<code>token</code></td></tr><tr><td>X-Subject-Token</td><td>header</td><td>string</td><td>需要验证的<code>token</code>，此处不再请求体中提供，而在请求头中提供。</td></tr><tr><td>nocatalog (Optional)</td><td>query</td><td>string</td><td>(v3.1以后) 响应信息是否包含目录，默认包含目录。</td></tr><tr><td>allow_expired (Optional)</td><td>query</td><td>bool</td><td>(v3.8以后)允许获取已经超时的<code>token</code>，默认情况下，已超时的<code>token</code>会返回404错误。</td></tr></tbody></table><h4 id="请求示例-6"><a href="#请求示例-6" class="headerlink" title="请求示例"></a>请求示例</h4><h4 id="响应参数-6"><a href="#响应参数-6" class="headerlink" title="响应参数"></a>响应参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Subject-Token</td><td>header</td><td>string</td><td>验证的<code>token</code>，此处不再请求体中提供，而在请求头中提供。</td></tr><tr><td>domain</td><td>body</td><td>object</td><td>一个 <code>domain</code> 对象。</td></tr><tr><td>methods</td><td>body</td><td>array</td><td>验证方式，可以提供为<code>password</code>和<code>token</code>两种中的其中一种或同时提供。表示用于验证<code>token</code>时的身份验证方法。例如，如果通过密码身份验证获得令牌，则它包含<code>password</code>。此后，如果该<code>token</code>使用令牌验证方法交换过多次，则随后创建的包括<code>password</code>和<code>token</code>两个属性。不同于多因素认证，<code>method</code>属性仅仅是表示用于对用户换取令牌进行身份验证的方法。客户端负责检测认证因素的总数。</td></tr><tr><td>links</td><td>body</td><td>object</td><td>到 <code>domain</code> 资源的链接。</td></tr><tr><td>user</td><td>body</td><td>object</td><td>一个 <code>user</code> 对象</td></tr><tr><td>token</td><td>body</td><td>object</td><td>一个 <code>token</code> 对象。</td></tr><tr><td>expires_at</td><td>body</td><td>string</td><td>令牌失效时间，格式为标准<a href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank" rel="noopener">ISO 8601</a>:<code>CCYY-MM-DDThh:mm:ss.sssZ</code>。例如, <code>2015-08-27T09:49:58.000000Z</code>，如果令牌不过期，则范围<code>null</code>。</td></tr><tr><td>project</td><td>body</td><td>object</td><td>A <code>project</code> object, containing:</td></tr><tr><td>catalog</td><td>body</td><td>array</td><td>A <code>catalog</code> object.</td></tr><tr><td>extras</td><td>body</td><td>object</td><td>A set of metadata key and value pairs, if any.</td></tr><tr><td>roles</td><td>body</td><td>array</td><td>A list of <code>role</code> objects, each containing:</td></tr><tr><td>audit_ids</td><td>body</td><td>array</td><td>包含一个或者两个审计ID。审计ID是随机产生的唯一值，对URL安全，可以用于追踪令牌行为。第一个审计ID用于当前令牌。第二个审计ID仅作用于重新申请具有访问范围的令牌。重新申请新令牌后失效。重新授权的令牌被交换给另外一个具有相同或者不同的访问范围的令牌。你可以使用这些审计ID追踪这些令牌或者令牌链的访问行为，而不会将令牌暴露给未授权用户。</td></tr><tr><td>issued_at</td><td>body</td><td>string</td><td>令牌发放时间，格式为标准<a href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank" rel="noopener">ISO 8601</a>:<code>CCYY-MM-DDThh:mm:ss.sssZ</code>。例如, <code>2015-08-27T09:49:58.000000Z</code>，如果令牌不过期，则范围<code>null</code>。</td></tr><tr><td>id (Optional)</td><td>body</td><td>string</td><td>用户<code>id</code>，在未指定用户<code>name</code>时指定。</td></tr><tr><td>name (Optional)</td><td>body</td><td>string</td><td>用户<code>name</code>，在未指定用户<code>id</code>时指定。若果指定<code>name</code>，同事也要通过ID或者名称指定域。</td></tr></tbody></table><h4 id="响应示例-6"><a href="#响应示例-6" class="headerlink" title="响应示例"></a>响应示例</h4><h3 id="检查令牌"><a href="#检查令牌" class="headerlink" title="检查令牌"></a>检查令牌</h3><figure class="highlight plain hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[head] /v3/auth/tokens</span><br></pre></td></tr></table></figure><ul><li>关联项 <code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_tokens</code></li><li>验证一个Token。</li><li>调用方法与上一条相似，但不提供响应体。</li><li>认证服务API会返回与<code>POST /auth/tokens</code> 类似的结果，但如果<code>token</code>无效，则会返回<code>204</code>状态。</li><li>正常返回码：<code>200</code></li><li>可能的错误返回码： <code>413</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code></li></ul><h4 id="请求参数-7"><a href="#请求参数-7" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Auth-Token</td><td>header</td><td>string</td><td>管理员<code>token</code></td></tr><tr><td>X-Subject-Token</td><td>header</td><td>string</td><td>需要验证的<code>token</code>，此处不再请求体中提供，而在请求头中提供。</td></tr><tr><td>allow_expired (Optional)</td><td>query</td><td>bool</td><td>(v3.8以后)允许获取已经超时的<code>token</code>，默认情况下，已超时的<code>token</code>会返回404错误。</td></tr></tbody></table><h4 id="响应示例-7"><a href="#响应示例-7" class="headerlink" title="响应示例"></a>响应示例</h4><h3 id="撤销令牌"><a href="#撤销令牌" class="headerlink" title="撤销令牌"></a>撤销令牌</h3><ul><li>关联项：<code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_tokens</code></li><li>撤销一个令牌。</li><li>与 HEAD <code>/auth/tokens</code> 调用方式一致，如果调用，则无视<code>X-Subject-Token</code>无视<code>expires_at</code>立即失效。不需要额外的<code>X-Auth-Token</code>参数。</li><li>正常返回代码：<code>204</code></li><li>可能的错误返回代码：<code>413</code>,<code>415</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code>,<code>409</code></li></ul><h4 id="请求参数-8"><a href="#请求参数-8" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Auth-Token</td><td>header</td><td>string</td><td>管理员<code>token</code></td></tr><tr><td>X-Subject-Token</td><td>header</td><td>string</td><td>需要撤销的<code>token</code>，此处不再请求体中提供，而在请求头中提供。</td></tr></tbody></table><h4 id="请求示例-7"><a href="#请求示例-7" class="headerlink" title="请求示例"></a>请求示例</h4><h4 id="响应示例-8"><a href="#响应示例-8" class="headerlink" title="响应示例"></a>响应示例</h4><h2 id="服务目录"><a href="#服务目录" class="headerlink" title="服务目录"></a>服务目录</h2><figure class="highlight plain hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[get] /v3/auth/catalog</span><br></pre></td></tr></table></figure><ul><li>关联项： <code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_catalog</code></li><li>3.3版新增</li><li>该请求会返回一个<code>X-Auth-Token</code>提供的服务目录。（即使该<code>token</code>不包含服务目录，如通过<code>nocatlog</code>参数获取的<code>token</code>。</li><li>返回结果中的<code>catlog</code>对象与<code>token</code>中包含的<code>catlog</code>对象是一致的。</li><li>正常返回代码：<code>200</code></li><li>可能的错误结果：<code>413</code>,<code>415</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code>,<code>409</code></li></ul><h4 id="请求参数-9"><a href="#请求参数-9" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Auth-Token</td><td>header</td><td>string</td><td>管理员的有效<code>token</code></td></tr></tbody></table><h4 id="请求示例-8"><a href="#请求示例-8" class="headerlink" title="请求示例"></a>请求示例</h4><h4 id="响应参数-7"><a href="#响应参数-7" class="headerlink" title="响应参数"></a>响应参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>endpoints</td><td>body</td><td>array</td><td>一个<code>endpoint</code>对象列表</td></tr><tr><td>id</td><td>body</td><td>string</td><td><code>endpoint</code>包含的<code>service</code>的<code>UUID</code></td></tr><tr><td>type</td><td>body</td><td>string</td><td><code>service</code>类型，用于描述服务提供的API。可以的值为： <code>compute</code>, <code>ec2</code>,<code>identity</code>, <code>image</code>, <code>network</code>, 或 <code>volume</code>.</td></tr><tr><td>name</td><td>body</td><td>string</td><td>服务名称</td></tr></tbody></table><h4 id="响应示例-9"><a href="#响应示例-9" class="headerlink" title="响应示例"></a>响应示例</h4><h2 id="项目范围"><a href="#项目范围" class="headerlink" title="项目范围"></a>项目范围</h2><figure class="highlight plain hljs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[get] /v3/auth/projects</span><br></pre></td></tr></table></figure><ul><li>关联项：<code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_projects</code></li><li>3.3新增</li><li>返回当前<code>X-Auth-Token</code>携带的<code>token</code>授权访问的项目范围。</li><li>结构与用户<code>project</code>列表一致。</li><li>正常返回代码: <code>200</code></li><li>可能的错误代码：<code>413</code>,<code>415</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code>,<code>409</code></li></ul><h4 id="请求参数-10"><a href="#请求参数-10" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Auth-Token</td><td>header</td><td>string</td><td>管理员的有效<code>token</code></td></tr></tbody></table><h4 id="请求示例-9"><a href="#请求示例-9" class="headerlink" title="请求示例"></a>请求示例</h4><h4 id="响应参数-8"><a href="#响应参数-8" class="headerlink" title="响应参数"></a>响应参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>domain_id</td><td>body</td><td>string</td><td><code>project</code>的域ID</td></tr><tr><td>enabled</td><td>body</td><td>boolean</td><td>如果该值为<code>true</code>则项目可用，否则不可用。</td></tr><tr><td>id</td><td>body</td><td>string</td><td><code>project</code>的ID</td></tr><tr><td>links</td><td>body</td><td>object</td><td><code>project</code>的资源链接。</td></tr><tr><td>name</td><td>body</td><td>string</td><td><code>project</code>的名称</td></tr></tbody></table><h4 id="响应示例-10"><a href="#响应示例-10" class="headerlink" title="响应示例"></a>响应示例</h4><h2 id="获取可用域的范围"><a href="#获取可用域的范围" class="headerlink" title="获取可用域的范围"></a>获取可用域的范围</h2><ul><li>关联项：<code>https://docs.openstack.org/api/openstack-identity/3/rel/auth_domains</code></li><li>3.3版本新增</li></ul><ul><li>返回当前<code>X-Auth-Token</code>携带的<code>token</code>授权访问的域范围。</li><li>结构与用户<code>domain</code>列表一致。</li><li>正常返回代码: <code>200</code></li><li>可能的错误代码：<code>413</code>,<code>415</code>,<code>405</code>,<code>404</code>,<code>403</code>,<code>401</code>,<code>400</code>,<code>503</code>,<code>409</code></li></ul><h4 id="请求参数-11"><a href="#请求参数-11" class="headerlink" title="请求参数"></a>请求参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>X-Auth-Token</td><td>header</td><td>string</td><td>管理员的有效`token</td></tr></tbody></table><h4 id="请求示例-10"><a href="#请求示例-10" class="headerlink" title="请求示例"></a>请求示例</h4><h4 id="响应参数-9"><a href="#响应参数-9" class="headerlink" title="响应参数"></a>响应参数</h4><table><thead><tr><th>参数名</th><th>位置</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>description</td><td>body</td><td>string</td><td>域描述</td></tr><tr><td>enabled</td><td>body</td><td>boolean</td><td>如果该值为<code>true</code>则项目可用，否则不可用。</td></tr><tr><td>id</td><td>body</td><td>string</td><td><code>domain</code>的ID</td></tr><tr><td>links</td><td>body</td><td>object</td><td><code>domain</code>的资源链接。</td></tr><tr><td>name</td><td>body</td><td>string</td><td><code>domain</code>的名称</td></tr></tbody></table><h4 id="响应示例-11"><a href="#响应示例-11" class="headerlink" title="响应示例"></a>响应示例</h4><div><h1>推荐文章<span style="font-size:.45em;color:gray">（由<a href="https://github.com/huiwang/hexo-recommended-posts" target="_blank" rel="noopener">hexo文章推荐插件</a>驱动）</span></h1><ul><li><a href="http://www.borgor.cn/2019-07-05/8761a3c5.html">在Python中将字典转换为对象</a></li><li><a href="http://www.borgor.cn/2019-07-04/e47f8b8b.html">DevOps基本术语和概念</a></li><li><a href="http://www.borgor.cn/2018-07-02/33fbe266.html">Horizon的登录过程</a></li></ul></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/kity@2.0.4/dist/kity.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/kityminder-core@1.4.50/dist/kityminder.core.min.js"></script><script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/hexo-simple-mindmap@0.2.0/dist/mindmap.min.js"></script><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/hexo-simple-mindmap@0.2.0/dist/mindmap.min.css"></div><div class="level is-size-7 is-uppercase"><div class="level-start"><div class="level-item"><span class="is-size-6 has-text-grey has-mr-7">#</span> <a class="has-link-grey -link" href="/tags/Development/" rel="tag">Development</a>, <a class="has-link-grey -link" href="/tags/OpenStackApi/" rel="tag">OpenStackApi</a></div></div></div></div></div><div class="card"><div class="card-content"><h3 class="menu-label has-text-centered">喜欢这篇文章？打赏一下作者吧</h3><div class="buttons is-centered"><a class="button is-info donate"><span class="icon is-small"><i class="fab fa-alipay"></i> </span><span>支付宝</span><div class="qrcode"><img src="https://imgs.borgor.cn/imgs20190628231540.png" alt="支付宝"></div></a><a class="button is-success donate"><span class="icon is-small"><i class="fab fa-weixin"></i> </span><span>微信</span><div class="qrcode"><img src="https://imgs.borgor.cn/imgs20190628231554.png" alt="微信"></div></a></div></div></div><div class="card card-transparent"><div class="level post-navigation is-flex-wrap is-mobile"><div class="level-start"><a class="level level-item has-link-grey article-nav-prev" href="/2017-09-08/f8c17d7.html"><i class="level-item fas fa-chevron-left"></i> <span class="level-item">Identity API v3 (CURRENT)(四)</span></a></div><div class="level-end"><a class="level level-item has-link-grey article-nav-next" href="/2017-09-06/f6088a4f.html"><span class="level-item">在Linux上搭建TimeMachine备份服务器</span> <i class="level-item fas fa-chevron-right"></i></a></div></div></div><div class="card"><div class="card-content"><h3 class="title is-5 has-text-weight-normal">评论</h3><div id="valine-thread" class="content"></div><script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script><script src="//unpkg.com/valine/dist/Valine.min.js"></script><script>new Valine({el:"#valine-thread",notify:!1,verify:!1,app_id:"ybhyfHG9S4TQhIvstdj5pprw-gzGzoHsz",app_key:"ob8A13IBceQXqd8g92nUgNMx",placeholder:"你有想说的么？"})</script></div></div></div><div class="column is-4-tablet is-3-desktop is-3-widescreen has-order-1 column-left"><div class="card widget"><div class="card-content"><nav class="level"><div class="level-item has-text-centered"><div><figure class="image is-128x128 has-mb-6"><img class="is-rounded" src="https://imgs.borgor.cn/imgs20190625111723.jpg" alt="BorGor"></figure><p class="is-size-4 is-block">BorGor</p><p class="is-size-6 is-block">Note?Note!</p><p class="is-size-6 is-flex is-flex-center has-text-grey"><i class="fas fa-map-marker-alt has-mr-7"></i> <span>Lanzhou.Gansu</span></p></div></div></nav><nav class="level is-mobile"><div class="level-item has-text-centered is-marginless"><div><p class="heading">文章</p><p class="title has-text-weight-normal">86</p></div></div><div class="level-item has-text-centered is-marginless"><div><p class="heading">分类</p><p class="title has-text-weight-normal">26</p></div></div><div class="level-item has-text-centered is-marginless"><div><p class="heading">标签</p><p class="title has-text-weight-normal">153</p></div></div></nav><div class="level"><a class="level-item button is-link is-rounded" href="/" target="_blank">关注我</a></div><div class="level is-mobile"><a class="level-item button is-white is-marginless" target="_blank" title="Github" href="https://github.com/cyrusky"><i class="fab fa-github"></i></a></div></div></div><div class="card widget" id="toc"><div class="card-content"><div class="menu"><h3 class="menu-label">目录</h3><ul class="menu-list"><ul class="menu-list"><li><a class="is-flex" href="#3-8版API更新内容"><span class="has-mr-6">1.1</span> <span>3.8版API更新内容</span></a></li><li><a class="is-flex" href="#3-7版API更新内容"><span class="has-mr-6">1.2</span> <span>3.7版API更新内容</span></a></li><li><a class="is-flex" href="#关联项"><span class="has-mr-6">1.3</span> <span>关联项</span></a></li><li><a class="is-flex" href="#凭证（Authentication）与令牌管理"><span class="has-mr-6">1.4</span> <span>凭证（Authentication）与令牌管理</span></a></li><li><a class="is-flex" href="#认证与令牌相关"><span class="has-mr-6">1.5</span> <span>认证与令牌相关</span></a><ul class="menu-list"><li><a class="is-flex" href="#通过密码进行未指定授权范围的认证"><span class="has-mr-6">1.5.1</span> <span>通过密码进行未指定授权范围的认证</span></a></li><li><a class="is-flex" href="#通过密码进行指定授权范围的认证"><span class="has-mr-6">1.5.2</span> <span>通过密码进行指定授权范围的认证</span></a></li><li><a class="is-flex" href="#使用显式授权的密码身份验证-未指定授权范围"><span class="has-mr-6">1.5.3</span> <span>使用显式授权的密码身份验证(未指定授权范围)</span></a></li><li><a class="is-flex" href="#使用令牌进行未指定范围授权的认证"><span class="has-mr-6">1.5.4</span> <span>使用令牌进行未指定范围授权的认证</span></a></li><li><a class="is-flex" href="#使用范围授权的令牌身份验证"><span class="has-mr-6">1.5.5</span> <span>使用范围授权的令牌身份验证</span></a></li><li><a class="is-flex" href="#使用显式授权的令牌身份认证（未指定授权范围）"><span class="has-mr-6">1.5.6</span> <span>使用显式授权的令牌身份认证（未指定授权范围）</span></a></li><li><a class="is-flex" href="#验证和显示令牌信息"><span class="has-mr-6">1.5.7</span> <span>验证和显示令牌信息</span></a></li><li><a class="is-flex" href="#检查令牌"><span class="has-mr-6">1.5.8</span> <span>检查令牌</span></a></li><li><a class="is-flex" href="#撤销令牌"><span class="has-mr-6">1.5.9</span> <span>撤销令牌</span></a></li></ul></li><li><a class="is-flex" href="#服务目录"><span class="has-mr-6">1.6</span> <span>服务目录</span></a></li><li><a class="is-flex" href="#项目范围"><span class="has-mr-6">1.7</span> <span>项目范围</span></a></li><li><a class="is-flex" href="#获取可用域的范围"><span class="has-mr-6">1.8</span> <span>获取可用域的范围</span></a></li></ul><li><a class="is-flex" href="#undefined"><span class="has-mr-6">2</span> <span>推荐文章（由hexo文章推荐插件驱动）</span></a></li></ul></div></div></div><div class="card widget"><div class="card-content"><div class="menu"><h3 class="menu-label">分类</h3><ul class="menu-list"><li><a class="level is-marginless" href="/categories/AI/"><span class="level-start"><span class="level-item">AI</span> </span><span class="level-end"><span class="level-item tag">20</span></span></a><ul><li><a class="level is-marginless" href="/categories/AI/Machine-Learning/"><span class="level-start"><span class="level-item">Machine Learning</span> </span><span class="level-end"><span class="level-item tag">6</span></span></a></li><li><a class="level is-marginless" href="/categories/AI/Mathematics/"><span class="level-start"><span class="level-item">Mathematics</span> </span><span class="level-end"><span class="level-item tag">9</span></span></a></li><li><a class="level is-marginless" href="/categories/AI/NLP/"><span class="level-start"><span class="level-item">NLP</span> </span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-marginless" href="/categories/AI/%E5%85%AC%E5%BC%8F%E6%8E%A8%E5%AF%BC/"><span class="level-start"><span class="level-item">公式推导</span> </span><span class="level-end"><span class="level-item tag">4</span></span></a></li></ul></li><li><a class="level is-marginless" href="/categories/CheatSheets/"><span class="level-start"><span class="level-item">CheatSheets</span> </span><span class="level-end"><span class="level-item tag">4</span></span></a></li><li><a class="level is-marginless" href="/categories/DevOps/"><span class="level-start"><span class="level-item">DevOps</span> </span><span class="level-end"><span class="level-item tag">8</span></span></a><ul><li><a class="level is-marginless" href="/categories/DevOps/Anti-patterns/"><span class="level-start"><span class="level-item">Anti-patterns</span> </span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-marginless" href="/categories/DevOps/Concept/"><span class="level-start"><span class="level-item">Concept</span> </span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-marginless" href="/categories/DevOps/Continuous-Delivery/"><span class="level-start"><span class="level-item">Continuous Delivery</span> </span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-marginless" href="/categories/DevOps/TeamWorks/"><span class="level-start"><span class="level-item">TeamWorks</span> </span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-marginless" href="/categories/DevOps/Testing/"><span class="level-start"><span class="level-item">Testing</span> </span><span class="level-end"><span class="level-item tag">1</span></span></a></li></ul></li><li><a class="level is-marginless" href="/categories/Development/"><span class="level-start"><span class="level-item">Development</span> </span><span class="level-end"><span class="level-item tag">33</span></span></a><ul><li><a class="level is-marginless" href="/categories/Development/Integrated/"><span class="level-start"><span class="level-item">Integrated</span> </span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-marginless" href="/categories/Development/JavaScript/"><span class="level-start"><span class="level-item">JavaScript</span> </span><span class="level-end"><span class="level-item tag">18</span></span></a></li><li><a class="level is-marginless" href="/categories/Development/Native/"><span class="level-start"><span class="level-item">Native</span> </span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-marginless" href="/categories/Development/Python/"><span class="level-start"><span class="level-item">Python</span> </span><span class="level-end"><span class="level-item tag">9</span></span></a></li><li><a class="level is-marginless" href="/categories/Development/React/"><span class="level-start"><span class="level-item">React</span> </span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-marginless" href="/categories/Development/html5/"><span class="level-start"><span class="level-item">html5</span> </span><span class="level-end"><span class="level-item tag">1</span></span></a></li></ul></li><li><a class="level is-marginless" href="/categories/Operations/"><span class="level-start"><span class="level-item">Operations</span> </span><span class="level-end"><span class="level-item tag">18</span></span></a><ul><li><a class="level is-marginless" href="/categories/Operations/Nginx/"><span class="level-start"><span class="level-item">Nginx</span> </span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-marginless" href="/categories/Operations/OpenStack/"><span class="level-start"><span class="level-item">OpenStack</span> </span><span class="level-end"><span class="level-item tag">14</span></span></a></li><li><a class="level is-marginless" href="/categories/Operations/System/"><span class="level-start"><span class="level-item">System</span> </span><span class="level-end"><span class="level-item tag">3</span></span></a></li></ul></li><li><a class="level is-marginless" href="/categories/Reading-Writing/"><span class="level-start"><span class="level-item">Reading&Writing</span> </span><span class="level-end"><span class="level-item tag">3</span></span></a><ul><li><a class="level is-marginless" href="/categories/Reading-Writing/Hexo/"><span class="level-start"><span class="level-item">Hexo</span> </span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-marginless" href="/categories/Reading-Writing/LaTeX/"><span class="level-start"><span class="level-item">LaTeX</span> </span><span class="level-end"><span class="level-item tag">1</span></span></a></li></ul></li></ul></div></div></div><div class="card widget"><div class="card-content"><h3 class="menu-label">标签云</h3><a href="/tags/Agile/" style="font-size:10px">Agile</a> <a href="/tags/Angularjs/" style="font-size:11.11px">Angularjs</a> <a href="/tags/Animation/" style="font-size:10px">Animation</a> <a href="/tags/Application/" style="font-size:10px">Application</a> <a href="/tags/Artificial-Intelligence/" style="font-size:10px">Artificial Intelligence</a> <a href="/tags/BP/" style="font-size:10px">BP</a> <a href="/tags/Bokeh/" style="font-size:10px">Bokeh</a> <a href="/tags/Book/" style="font-size:10px">Book</a> <a href="/tags/C4-5/" style="font-size:10px">C4.5</a> <a href="/tags/CART/" style="font-size:10px">CART</a> <a href="/tags/CD/" style="font-size:10px">CD</a> <a href="/tags/CLI/" style="font-size:10px">CLI</a> <a href="/tags/CSS/" style="font-size:10px">CSS</a> <a href="/tags/CentOS/" style="font-size:11.11px">CentOS</a> <a href="/tags/Cinder/" style="font-size:10px">Cinder</a> <a href="/tags/Clipboardjs/" style="font-size:10px">Clipboardjs</a> <a href="/tags/Concept/" style="font-size:10px">Concept</a> <a href="/tags/Continuous-Delivery/" style="font-size:10px">Continuous Delivery</a> <a href="/tags/DeepLearning/" style="font-size:16.67px">DeepLearning</a> <a href="/tags/Department/" style="font-size:11.11px">Department</a> <a href="/tags/DevOps/" style="font-size:17.78px">DevOps</a> <a href="/tags/Develop/" style="font-size:13.33px">Develop</a> <a href="/tags/Development/" style="font-size:20px">Development</a> <a href="/tags/Directive/" style="font-size:10px">Directive</a> <a href="/tags/Distribution/" style="font-size:10px">Distribution</a> <a href="/tags/Django/" style="font-size:12.22px">Django</a> <a href="/tags/Document/" style="font-size:10px">Document</a> <a href="/tags/ES5/" style="font-size:10px">ES5</a> <a href="/tags/ES6/" style="font-size:10px">ES6</a> <a href="/tags/Echarts/" style="font-size:10px">Echarts</a> <a href="/tags/Engine/" style="font-size:10px">Engine</a> <a href="/tags/Entropy/" style="font-size:10px">Entropy</a> <a href="/tags/Filter/" style="font-size:10px">Filter</a> <a href="/tags/Front-End/" style="font-size:10px">Front End</a> <a href="/tags/Gallery/" style="font-size:10px">Gallery</a> <a href="/tags/Git/" style="font-size:10px">Git</a> <a href="/tags/Gradient-descent/" style="font-size:10px">Gradient descent</a> <a href="/tags/Hexo/" style="font-size:12.22px">Hexo</a> <a href="/tags/Horizon/" style="font-size:10px">Horizon</a> <a href="/tags/ID3-5/" style="font-size:10px">ID3.5</a> <a href="/tags/Icarus/" style="font-size:10px">Icarus</a> <a href="/tags/JavaScript/" style="font-size:18.89px">JavaScript</a> <a href="/tags/Javascript/" style="font-size:11.11px">Javascript</a> <a href="/tags/KVM/" style="font-size:10px">KVM</a> <a href="/tags/LaTeX/" style="font-size:10px">LaTeX</a> <a href="/tags/LibreOffice/" style="font-size:10px">LibreOffice</a> <a href="/tags/Linux/" style="font-size:10px">Linux</a> <a href="/tags/Machine-Learning/" style="font-size:11.11px">Machine Learning</a> <a href="/tags/Matrix/" style="font-size:10px">Matrix</a> <a href="/tags/MiddleWare/" style="font-size:10px">MiddleWare</a> <a href="/tags/Module/" style="font-size:10px">Module</a> <a href="/tags/Network/" style="font-size:10px">Network</a> <a href="/tags/Nginx/" style="font-size:10px">Nginx</a> <a href="/tags/NodeJS/" style="font-size:11.11px">NodeJS</a> <a href="/tags/OOP/" style="font-size:10px">OOP</a> <a href="/tags/OpenStack/" style="font-size:17.78px">OpenStack</a> <a href="/tags/OpenStackApi/" style="font-size:14.44px">OpenStackApi</a> <a href="/tags/Operations/" style="font-size:10px">Operations</a> <a href="/tags/Oprations/" style="font-size:11.11px">Oprations</a> <a href="/tags/PDF/" style="font-size:10px">PDF</a> <a href="/tags/Pipline/" style="font-size:10px">Pipline</a> <a href="/tags/Probability/" style="font-size:12.22px">Probability</a> <a href="/tags/Python/" style="font-size:15.56px">Python</a> <a href="/tags/React/" style="font-size:11.11px">React</a> <a href="/tags/Relational-algebra/" style="font-size:10px">Relational algebra</a> <a href="/tags/Restful/" style="font-size:10px">Restful</a> <a href="/tags/Route/" style="font-size:10px">Route</a> <a href="/tags/SVD/" style="font-size:10px">SVD</a> <a href="/tags/SVM/" style="font-size:11.11px">SVM</a> <a href="/tags/Scalar/" style="font-size:10px">Scalar</a> <a href="/tags/Sigmoid/" style="font-size:10px">Sigmoid</a> <a href="/tags/Team/" style="font-size:10px">Team</a> <a href="/tags/Tempest/" style="font-size:10px">Tempest</a> <a href="/tags/Tensor/" style="font-size:10px">Tensor</a> <a href="/tags/Testing/" style="font-size:10px">Testing</a> <a href="/tags/Time/" style="font-size:10px">Time</a> <a href="/tags/TimeMachine/" style="font-size:10px">TimeMachine</a> <a href="/tags/Tips/" style="font-size:10px">Tips</a> <a href="/tags/Vector/" style="font-size:10px">Vector</a> <a href="/tags/Vmware/" style="font-size:10px">Vmware</a> <a href="/tags/Vue/" style="font-size:17.78px">Vue</a> <a href="/tags/Vuex/" style="font-size:10px">Vuex</a> <a href="/tags/WSGI/" style="font-size:10px">WSGI</a> <a href="/tags/Web/" style="font-size:10px">Web</a> <a href="/tags/Word-Cut/" style="font-size:10px">Word Cut</a> <a href="/tags/aliyun/" style="font-size:10px">aliyun</a> <a href="/tags/auth/" style="font-size:10px">auth</a> <a href="/tags/babel/" style="font-size:10px">babel</a> <a href="/tags/certbot/" style="font-size:10px">certbot</a> <a href="/tags/decision-tree/" style="font-size:10px">decision tree</a> <a href="/tags/homebrew/" style="font-size:10px">homebrew</a> <a href="/tags/jwt/" style="font-size:10px">jwt</a> <a href="/tags/keystone/" style="font-size:11.11px">keystone</a> <a href="/tags/loader/" style="font-size:10px">loader</a> <a href="/tags/mathematics/" style="font-size:11.11px">mathematics</a> <a href="/tags/migrate/" style="font-size:10px">migrate</a> <a href="/tags/openstack/" style="font-size:10px">openstack</a> <a href="/tags/pdf2html/" style="font-size:10px">pdf2html</a> <a href="/tags/pm2/" style="font-size:10px">pm2</a> <a href="/tags/singular-value-decomposition/" style="font-size:10px">singular value decomposition</a> <a href="/tags/vue-router/" style="font-size:11.11px">vue-router</a> <a href="/tags/vue-ssr/" style="font-size:10px">vue-ssr</a> <a href="/tags/webpack/" style="font-size:10px">webpack</a> <a href="/tags/%E4%BD%8E%E9%80%9A%E6%BB%A4%E6%B3%A2%E5%99%A8/" style="font-size:10px">低通滤波器</a> <a href="/tags/%E5%85%A5%E9%97%A8/" style="font-size:10px">入门</a> <a href="/tags/%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F/" style="font-size:10px">全局变量</a> <a href="/tags/%E5%85%A8%E5%B1%80%E5%AF%B9%E8%B1%A1/" style="font-size:10px">全局对象</a> <a href="/tags/%E5%85%A8%E6%A0%88/" style="font-size:10px">全栈</a> <a href="/tags/%E5%85%AC%E5%BC%8F/" style="font-size:12.22px">公式</a> <a href="/tags/%E5%86%B3%E7%AD%96%E6%A0%91/" style="font-size:10px">决策树</a> <a href="/tags/%E5%87%BD%E6%95%B0/" style="font-size:10px">函数</a> <a href="/tags/%E5%88%86%E7%B1%BB%E5%99%A8/" style="font-size:10px">分类器</a> <a href="/tags/%E5%8A%A0%E9%80%9F/" style="font-size:10px">加速</a> <a href="/tags/%E5%8C%B9%E9%85%8D%E6%BB%A4%E6%B3%A2%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B/" style="font-size:10px">匹配滤波边缘检测</a> <a href="/tags/%E5%8D%B7%E7%A7%AF/" style="font-size:10px">卷积</a> <a href="/tags/%E5%8D%B7%E7%A7%AF%E6%A0%B8/" style="font-size:10px">卷积核</a> <a href="/tags/%E5%8E%9F%E5%9E%8B%E9%93%BE/" style="font-size:10px">原型链</a> <a href="/tags/%E5%8F%8D%E5%90%91%E4%BC%A0%E6%92%AD/" style="font-size:10px">反向传播</a> <a href="/tags/%E5%8F%98%E9%87%8F%E7%B1%BB%E5%9E%8B/" style="font-size:10px">变量类型</a> <a href="/tags/%E5%AE%98%E6%96%B9%E7%A4%BA%E4%BE%8B/" style="font-size:10px">官方示例</a> <a href="/tags/%E5%AF%B9%E5%81%B6%E5%BD%A2%E5%BC%8F/" style="font-size:10px">对偶形式</a> <a href="/tags/%E5%AF%B9%E8%B1%A1/" style="font-size:10px">对象</a> <a href="/tags/%E5%B9%B3%E7%A7%BB%E5%92%8C%E6%9F%A5%E5%88%86%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B/" style="font-size:10px">平移和查分边缘检测</a> <a href="/tags/%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E4%B9%98%E5%AD%90%E6%B3%95/" style="font-size:10px">拉格朗日乘子法</a> <a href="/tags/%E6%8E%A8%E5%AF%BC/" style="font-size:12.22px">推导</a> <a href="/tags/%E6%8F%90%E4%BA%A4%E9%98%B6%E6%AE%B5/" style="font-size:10px">提交阶段</a> <a href="/tags/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1/" style="font-size:10px">最大似然估计</a> <a href="/tags/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E4%BC%B0%E8%AE%A1/" style="font-size:10px">最小二乘估计</a> <a href="/tags/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95/" style="font-size:10px">最小二乘法</a> <a href="/tags/%E6%9C%B4%E7%B4%A0%E8%B4%9D%E5%8F%B6%E6%96%AF/" style="font-size:10px">朴素贝叶斯</a> <a href="/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" style="font-size:10px">机器学习</a> <a href="/tags/%E6%9D%A1%E4%BB%B6%E6%A6%82%E7%8E%87/" style="font-size:10px">条件概率</a> <a href="/tags/%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/" style="font-size:11.11px">梯度下降</a> <a href="/tags/%E6%A2%AF%E5%BA%A6%E6%96%B9%E5%90%91%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B/" style="font-size:10px">梯度方向边缘检测</a> <a href="/tags/%E6%A6%82%E5%BF%B5/" style="font-size:10px">概念</a> <a href="/tags/%E6%A6%82%E7%8E%87/" style="font-size:10px">概率</a> <a href="/tags/%E6%B1%82%E5%AF%BC/" style="font-size:10px">求导</a> <a href="/tags/%E6%B5%81%E7%A8%8B/" style="font-size:10px">流程</a> <a href="/tags/%E7%86%B5/" style="font-size:10px">熵</a> <a href="/tags/%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/" style="font-size:10px">生命周期</a> <a href="/tags/%E7%9F%A9%E9%98%B5/" style="font-size:10px">矩阵</a> <a href="/tags/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/" style="font-size:10px">神经网络</a> <a href="/tags/%E7%A7%81%E6%9C%89%E5%AF%B9%E8%B1%A1/" style="font-size:10px">私有对象</a> <a href="/tags/%E7%B1%BB/" style="font-size:10px">类</a> <a href="/tags/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92/" style="font-size:10px">线性回归</a> <a href="/tags/%E8%81%94%E5%90%88%E6%A6%82%E7%8E%87/" style="font-size:10px">联合概率</a> <a href="/tags/%E8%B4%9D%E5%8F%B6%E6%96%AF%E5%88%A4%E5%AE%9A%E5%87%86%E5%88%99/" style="font-size:10px">贝叶斯判定准则</a> <a href="/tags/%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B/" style="font-size:10px">边缘检测</a> <a href="/tags/%E8%BE%B9%E9%99%85%E6%A6%82%E7%8E%87/" style="font-size:10px">边际概率</a> <a href="/tags/%E9%97%AD%E5%8C%85/" style="font-size:10px">闭包</a> <a href="/tags/%E9%97%B4%E9%9A%94/" style="font-size:11.11px">间隔</a> <a href="/tags/%E9%AB%98%E6%96%AF%E5%88%86%E5%B8%83/" style="font-size:10px">高斯分布</a> <a href="/tags/%E9%AB%98%E9%80%9A%E6%BB%A4%E6%B3%A2%E5%99%A8/" style="font-size:10px">高通滤波器</a></div></div><div class="column-right-shadow"><div class="card widget"><div class="card-content"><h3 class="menu-label">最新文章</h3><article class="media"><a href="/2019-11-24/4adcf99c.html" class="media-left"><p class="image is-64x64"><img class="thumbnail" src="https://imgs.borgor.cn/imgs/20191124220507.png" alt="JavaScript闭包到底解决了什么问题？"></p></a><div class="media-content"><div class="content"><div><time class="has-text-grey is-size-7 is-uppercase" datetime="2019-11-24T12:42:13.000Z">2019-11-24</time></div><a href="/2019-11-24/4adcf99c.html" class="has-link-black-ter is-size-6">JavaScript闭包到底解决了什么问题？</a><p class="is-size-7 is-uppercase"><a class="has-link-grey -link" href="/categories/Development/">Development</a> / <a class="has-link-grey -link" href="/categories/Development/JavaScript/">JavaScript</a></p></div></div></article><article class="media"><a href="/2019-11-22/f971e187.html" class="media-left"><p class="image is-64x64"><img class="thumbnail" src="https://imgs.borgor.cn/imgs/20191122161153.png" alt="JavaScript中对象的生命周期"></p></a><div class="media-content"><div class="content"><div><time class="has-text-grey is-size-7 is-uppercase" datetime="2019-11-22T06:04:32.000Z">2019-11-22</time></div><a href="/2019-11-22/f971e187.html" class="has-link-black-ter is-size-6">JavaScript中对象的生命周期</a><p class="is-size-7 is-uppercase"><a class="has-link-grey -link" href="/categories/Development/">Development</a> / <a class="has-link-grey -link" href="/categories/Development/JavaScript/">JavaScript</a></p></div></div></article><article class="media"><a href="/2019-11-21/c07cc943.html" class="media-left"><p class="image is-64x64"><img class="thumbnail" src="https://imgs.borgor.cn/imgs/20191121175758.png" alt="React官方示例中的小游戏示例"></p></a><div class="media-content"><div class="content"><div><time class="has-text-grey is-size-7 is-uppercase" datetime="2019-11-21T09:56:03.000Z">2019-11-21</time></div><a href="/2019-11-21/c07cc943.html" class="has-link-black-ter is-size-6">React官方示例中的小游戏示例</a><p class="is-size-7 is-uppercase"><a class="has-link-grey -link" href="/categories/Development/">Development</a> / <a class="has-link-grey -link" href="/categories/Development/React/">React</a></p></div></div></article><article class="media"><a href="/2019-11-21/769edcc6.html" class="media-left"><p class="image is-64x64"><img class="thumbnail" src="https://imgs.borgor.cn/imgs/20191121141128.png" alt="JavaScript引擎的工作原理探析"></p></a><div class="media-content"><div class="content"><div><time class="has-text-grey is-size-7 is-uppercase" datetime="2019-11-21T00:30:12.000Z">2019-11-21</time></div><a href="/2019-11-21/769edcc6.html" class="has-link-black-ter is-size-6">JavaScript引擎的工作原理探析</a><p class="is-size-7 is-uppercase"><a class="has-link-grey -link" href="/categories/Development/">Development</a> / <a class="has-link-grey -link" href="/categories/Development/JavaScript/">JavaScript</a></p></div></div></article><article class="media"><a href="/2019-11-19/290f6390.html" class="media-left"><p class="image is-64x64"><img class="thumbnail" src="https://imgs.borgor.cn/imgs/20191119100237.png" alt="深入了解JavaScript中的基本变量类型"></p></a><div class="media-content"><div class="content"><div><time class="has-text-grey is-size-7 is-uppercase" datetime="2019-11-19T04:22:33.000Z">2019-11-19</time></div><a href="/2019-11-19/290f6390.html" class="has-link-black-ter is-size-6">深入了解JavaScript中的基本变量类型</a><p class="is-size-7 is-uppercase"><a class="has-link-grey -link" href="/categories/Development/">Development</a> / <a class="has-link-grey -link" href="/categories/Development/JavaScript/">JavaScript</a></p></div></div></article></div></div><div class="card widget"><div class="card-content"><div class="menu"><h3 class="menu-label">归档</h3><ul class="menu-list"><li><a class="level is-marginless" href="/archives/2019/11/"><span class="level-start"><span class="level-item">十一月 2019</span> </span><span class="level-end"><span class="level-item tag">7</span></span></a></li><li><a class="level is-marginless" href="/archives/2019/10/"><span class="level-start"><span class="level-item">十月 2019</span> </span><span class="level-end"><span class="level-item tag">8</span></span></a></li><li><a class="level is-marginless" href="/archives/2019/09/"><span class="level-start"><span class="level-item">九月 2019</span> </span><span class="level-end"><span class="level-item tag">5</span></span></a></li><li><a class="level is-marginless" href="/archives/2019/08/"><span class="level-start"><span class="level-item">八月 2019</span> </span><span class="level-end"><span class="level-item tag">13</span></span></a></li><li><a class="level is-marginless" href="/archives/2019/07/"><span class="level-start"><span class="level-item">七月 2019</span> </span><span class="level-end"><span class="level-item tag">15</span></span></a></li><li><a class="level is-marginless" href="/archives/2019/06/"><span class="level-start"><span class="level-item">六月 2019</span> </span><span class="level-end"><span class="level-item tag">11</span></span></a></li><li><a class="level is-marginless" href="/archives/2018/07/"><span class="level-start"><span class="level-item">七月 2018</span> </span><span class="level-end"><span class="level-item tag">4</span></span></a></li><li><a class="level is-marginless" href="/archives/2018/06/"><span class="level-start"><span class="level-item">六月 2018</span> </span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-marginless" href="/archives/2017/12/"><span class="level-start"><span class="level-item">十二月 2017</span> </span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-marginless" href="/archives/2017/11/"><span class="level-start"><span class="level-item">十一月 2017</span> </span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-marginless" href="/archives/2017/10/"><span class="level-start"><span class="level-item">十月 2017</span> </span><span class="level-end"><span class="level-item tag">5</span></span></a></li><li><a class="level is-marginless" href="/archives/2017/09/"><span class="level-start"><span class="level-item">九月 2017</span> </span><span class="level-end"><span class="level-item tag">10</span></span></a></li></ul></div></div></div><div class="card widget"><div class="card-content"><div class="menu"><h3 class="menu-label">标签</h3><div class="field is-grouped is-grouped-multiline"><div class="control"><a class="tags has-addons" href="/tags/Agile/"><span class="tag">Agile</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Angularjs/"><span class="tag">Angularjs</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Animation/"><span class="tag">Animation</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Application/"><span class="tag">Application</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Artificial-Intelligence/"><span class="tag">Artificial Intelligence</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/BP/"><span class="tag">BP</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Bokeh/"><span class="tag">Bokeh</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Book/"><span class="tag">Book</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/C4-5/"><span class="tag">C4.5</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/CART/"><span class="tag">CART</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/CD/"><span class="tag">CD</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/CLI/"><span class="tag">CLI</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/CSS/"><span class="tag">CSS</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/CentOS/"><span class="tag">CentOS</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Cinder/"><span class="tag">Cinder</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Clipboardjs/"><span class="tag">Clipboardjs</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Concept/"><span class="tag">Concept</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Continuous-Delivery/"><span class="tag">Continuous Delivery</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/DeepLearning/"><span class="tag">DeepLearning</span> <span class="tag is-grey">7</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Department/"><span class="tag">Department</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/DevOps/"><span class="tag">DevOps</span> <span class="tag is-grey">8</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Develop/"><span class="tag">Develop</span> <span class="tag is-grey">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Development/"><span class="tag">Development</span> <span class="tag is-grey">16</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Directive/"><span class="tag">Directive</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Distribution/"><span class="tag">Distribution</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Django/"><span class="tag">Django</span> <span class="tag is-grey">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Document/"><span class="tag">Document</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/ES5/"><span class="tag">ES5</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/ES6/"><span class="tag">ES6</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Echarts/"><span class="tag">Echarts</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Engine/"><span class="tag">Engine</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Entropy/"><span class="tag">Entropy</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Filter/"><span class="tag">Filter</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Front-End/"><span class="tag">Front End</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Gallery/"><span class="tag">Gallery</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Git/"><span class="tag">Git</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Gradient-descent/"><span class="tag">Gradient descent</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Hexo/"><span class="tag">Hexo</span> <span class="tag is-grey">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Horizon/"><span class="tag">Horizon</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/ID3-5/"><span class="tag">ID3.5</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Icarus/"><span class="tag">Icarus</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/JavaScript/"><span class="tag">JavaScript</span> <span class="tag is-grey">9</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Javascript/"><span class="tag">Javascript</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/KVM/"><span class="tag">KVM</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/LaTeX/"><span class="tag">LaTeX</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/LibreOffice/"><span class="tag">LibreOffice</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Linux/"><span class="tag">Linux</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Machine-Learning/"><span class="tag">Machine Learning</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Matrix/"><span class="tag">Matrix</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/MiddleWare/"><span class="tag">MiddleWare</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Module/"><span class="tag">Module</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Network/"><span class="tag">Network</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Nginx/"><span class="tag">Nginx</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/NodeJS/"><span class="tag">NodeJS</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/OOP/"><span class="tag">OOP</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/OpenStack/"><span class="tag">OpenStack</span> <span class="tag is-grey">8</span></a></div><div class="control"><a class="tags has-addons" href="/tags/OpenStackApi/"><span class="tag">OpenStackApi</span> <span class="tag is-grey">5</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Operations/"><span class="tag">Operations</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Oprations/"><span class="tag">Oprations</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/PDF/"><span class="tag">PDF</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Pipline/"><span class="tag">Pipline</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Probability/"><span class="tag">Probability</span> <span class="tag is-grey">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Python/"><span class="tag">Python</span> <span class="tag is-grey">6</span></a></div><div class="control"><a class="tags has-addons" href="/tags/React/"><span class="tag">React</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Relational-algebra/"><span class="tag">Relational algebra</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Restful/"><span class="tag">Restful</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Route/"><span class="tag">Route</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/SVD/"><span class="tag">SVD</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/SVM/"><span class="tag">SVM</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Scalar/"><span class="tag">Scalar</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Sigmoid/"><span class="tag">Sigmoid</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Team/"><span class="tag">Team</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Tempest/"><span class="tag">Tempest</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Tensor/"><span class="tag">Tensor</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Testing/"><span class="tag">Testing</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Time/"><span class="tag">Time</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/TimeMachine/"><span class="tag">TimeMachine</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Tips/"><span class="tag">Tips</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Vector/"><span class="tag">Vector</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Vmware/"><span class="tag">Vmware</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Vue/"><span class="tag">Vue</span> <span class="tag is-grey">8</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Vuex/"><span class="tag">Vuex</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/WSGI/"><span class="tag">WSGI</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Web/"><span class="tag">Web</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Word-Cut/"><span class="tag">Word Cut</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/aliyun/"><span class="tag">aliyun</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/auth/"><span class="tag">auth</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/babel/"><span class="tag">babel</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/certbot/"><span class="tag">certbot</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/decision-tree/"><span class="tag">decision tree</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/homebrew/"><span class="tag">homebrew</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/jwt/"><span class="tag">jwt</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/keystone/"><span class="tag">keystone</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/loader/"><span class="tag">loader</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/mathematics/"><span class="tag">mathematics</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/migrate/"><span class="tag">migrate</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/openstack/"><span class="tag">openstack</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/pdf2html/"><span class="tag">pdf2html</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/pm2/"><span class="tag">pm2</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/singular-value-decomposition/"><span class="tag">singular value decomposition</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/vue-router/"><span class="tag">vue-router</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/vue-ssr/"><span class="tag">vue-ssr</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/webpack/"><span class="tag">webpack</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E4%BD%8E%E9%80%9A%E6%BB%A4%E6%B3%A2%E5%99%A8/"><span class="tag">低通滤波器</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%85%A5%E9%97%A8/"><span class="tag">入门</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F/"><span class="tag">全局变量</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%85%A8%E5%B1%80%E5%AF%B9%E8%B1%A1/"><span class="tag">全局对象</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%85%A8%E6%A0%88/"><span class="tag">全栈</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%85%AC%E5%BC%8F/"><span class="tag">公式</span> <span class="tag is-grey">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%86%B3%E7%AD%96%E6%A0%91/"><span class="tag">决策树</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%87%BD%E6%95%B0/"><span class="tag">函数</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%88%86%E7%B1%BB%E5%99%A8/"><span class="tag">分类器</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%8A%A0%E9%80%9F/"><span class="tag">加速</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%8C%B9%E9%85%8D%E6%BB%A4%E6%B3%A2%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B/"><span class="tag">匹配滤波边缘检测</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%8D%B7%E7%A7%AF/"><span class="tag">卷积</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%8D%B7%E7%A7%AF%E6%A0%B8/"><span class="tag">卷积核</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%8E%9F%E5%9E%8B%E9%93%BE/"><span class="tag">原型链</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%8F%8D%E5%90%91%E4%BC%A0%E6%92%AD/"><span class="tag">反向传播</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%8F%98%E9%87%8F%E7%B1%BB%E5%9E%8B/"><span class="tag">变量类型</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%AE%98%E6%96%B9%E7%A4%BA%E4%BE%8B/"><span class="tag">官方示例</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%AF%B9%E5%81%B6%E5%BD%A2%E5%BC%8F/"><span class="tag">对偶形式</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%AF%B9%E8%B1%A1/"><span class="tag">对象</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E5%B9%B3%E7%A7%BB%E5%92%8C%E6%9F%A5%E5%88%86%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B/"><span class="tag">平移和查分边缘检测</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E4%B9%98%E5%AD%90%E6%B3%95/"><span class="tag">拉格朗日乘子法</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%8E%A8%E5%AF%BC/"><span class="tag">推导</span> <span class="tag is-grey">3</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%8F%90%E4%BA%A4%E9%98%B6%E6%AE%B5/"><span class="tag">提交阶段</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1/"><span class="tag">最大似然估计</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E4%BC%B0%E8%AE%A1/"><span class="tag">最小二乘估计</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95/"><span class="tag">最小二乘法</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%9C%B4%E7%B4%A0%E8%B4%9D%E5%8F%B6%E6%96%AF/"><span class="tag">朴素贝叶斯</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/"><span class="tag">机器学习</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%9D%A1%E4%BB%B6%E6%A6%82%E7%8E%87/"><span class="tag">条件概率</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/"><span class="tag">梯度下降</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%A2%AF%E5%BA%A6%E6%96%B9%E5%90%91%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B/"><span class="tag">梯度方向边缘检测</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%A6%82%E5%BF%B5/"><span class="tag">概念</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%A6%82%E7%8E%87/"><span class="tag">概率</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%B1%82%E5%AF%BC/"><span class="tag">求导</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%B5%81%E7%A8%8B/"><span class="tag">流程</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E7%86%B5/"><span class="tag">熵</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/"><span class="tag">生命周期</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E7%9F%A9%E9%98%B5/"><span class="tag">矩阵</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/"><span class="tag">神经网络</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E7%A7%81%E6%9C%89%E5%AF%B9%E8%B1%A1/"><span class="tag">私有对象</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E7%B1%BB/"><span class="tag">类</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92/"><span class="tag">线性回归</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E8%81%94%E5%90%88%E6%A6%82%E7%8E%87/"><span class="tag">联合概率</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E8%B4%9D%E5%8F%B6%E6%96%AF%E5%88%A4%E5%AE%9A%E5%87%86%E5%88%99/"><span class="tag">贝叶斯判定准则</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B/"><span class="tag">边缘检测</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E8%BE%B9%E9%99%85%E6%A6%82%E7%8E%87/"><span class="tag">边际概率</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E9%97%AD%E5%8C%85/"><span class="tag">闭包</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E9%97%B4%E9%9A%94/"><span class="tag">间隔</span> <span class="tag is-grey">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E9%AB%98%E6%96%AF%E5%88%86%E5%B8%83/"><span class="tag">高斯分布</span> <span class="tag is-grey">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E9%AB%98%E9%80%9A%E6%BB%A4%E6%B3%A2%E5%99%A8/"><span class="tag">高通滤波器</span> <span class="tag is-grey">1</span></a></div></div></div></div></div></div></div></div></div></section><footer class="footer"><div class="container"><div class="level"><div class="level-start has-text-centered-mobile"><a class="footer-logo is-block has-mb-6" href="/"><img src="https://imgs.borgor.cn/imgs20190625111723.jpg" alt="Identity API v3 (CURRENT)(一)" height="28"></a><p class="is-size-7">&copy; 2017-2019 Cyrusky&nbsp; Powered by <a href="https://hexo.io/" target="_blank">Hexo</a> & <a href="https://github.com/ppoffice/hexo-theme-icarus" target="_blank">Icarus</a><br><span id="busuanzi_container_site_uv">共<span id="busuanzi_value_site_uv">0</span>个访客</span><br><a target="_blank" href="https://icp.chinaz.com/info?q=borgor.cn">陇ICP备19002255号</a></p></div><div class="level-end"><div class="field has-addons is-flex-center-mobile has-mt-5-mobile is-flex-wrap is-flex-middle"><p class="control"><a class="button is-white is-large" target="_blank" title="Creative Commons" href="https://creativecommons.org/"><i class="fab fa-creative-commons"></i></a></p><p class="control"><a class="button is-white is-large" target="_blank" title="Attribution 4.0 International" href="https://creativecommons.org/licenses/by/4.0/"><i class="fab fa-creative-commons-by"></i></a></p><p class="control"><a class="button is-white is-large" target="_blank" title="Download on GitHub" href="https://github.com/ppoffice/hexo-theme-icarus"><i class="fab fa-github"></i></a></p></div></div></div></div></footer><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment-with-locales.min.js"></script><script>moment.locale("zh-CN")</script><script src="/js/animation.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.8/js/lightgallery.min.js" defer></script><script src="https://cdnjs.cloudflare.com/ajax/libs/justifiedGallery/3.7.0/js/jquery.justifiedGallery.min.js" defer></script><script src="/js/gallery.js" defer></script><div id="outdated"><h6>Your browser is out-of-date!</h6><p>Update your browser to view this website correctly. <a id="btnUpdateBrowser" href="http://outdatedbrowser.com/" target="_blank" rel="noopener">Update my browser now</a></p><p class="last"><a href="#" id="btnCloseUpdateBrowser" title="Close">&times;</a></p></div><script src="https://cdnjs.cloudflare.com/ajax/libs/outdated-browser/1.1.5/outdatedbrowser.min.js" defer></script><script>document.addEventListener("DOMContentLoaded",function(){outdatedBrowser({bgColor:"#f25648",color:"#ffffff",lowerThan:"flex"})})</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML" defer></script><script>document.addEventListener("DOMContentLoaded",function(){MathJax.Hub.Config({"HTML-CSS":{matchFontHeight:!1},SVG:{matchFontHeight:!1},CommonHTML:{matchFontHeight:!1},tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]]}})})</script><a id="back-to-top" title="回到顶端" href="javascript:;" target="_blank" rel="noopener"><i class="fas fa-chevron-up"></i></a><script src="/js/back-to-top.js" defer></script><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer></script><script src="/js/clipboard.js" defer></script><script src="/js/main.js" defer></script><div class="searchbox ins-search"><div class="searchbox-container ins-search-container"><div class="searchbox-input-wrapper"><input type="text" class="searchbox-input ins-search-input" placeholder="想要查找什么..."> <span class="searchbox-close ins-close ins-selectable"><i class="fa fa-times-circle"></i></span></div><div class="searchbox-result-wrapper ins-section-wrapper"><div class="ins-section-container"></div></div></div></div><script>!function(T){var N={TRANSLATION:{POSTS:"文章",PAGES:"页面",CATEGORIES:"分类",TAGS:"标签",UNTITLED:"(无标题)"},CONTENT_URL:"/content.json"};T.INSIGHT_CONFIG=N}(window)</script><script src="/js/insight.js" defer></script><link rel="stylesheet" href="/css/search.css"><link rel="stylesheet" href="/css/insight.css"></body></html><!-- rebuild by neat -->